Автор работы: Пользователь скрыл имя, 18 Декабря 2012 в 14:42, практическая работа
Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат.
Вводится строка, каждое слово которой отделяется от других слов одним или несколькими пробелами. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран полученный результат.
Создать массив структур, содержащий информацию согласно варианту индивидуального задания. Выполнить задание и вывести на экран полученный результат.
Контрольная работа №2
По основам алгоритмов и программирования
Студента ФЗО БГУИР
Специальность МСТК
Лабораторная работа №5
Ввести матрицу размером NxM. Память для массива выделить динамически. Выполнить в соответствии с номером варианта индивидуальное задание и вывести на экран исходные данные и полученный результат.
3. Определить сумму отрицательных элементов, расположенных выше побочной диагонали матрицы.
#include <iostream.h>
#include <math.h>
#include <iomanip.h>
int main()
{
int **a;
int m,n,i,j,s;
cout<<"Vvedite razmernost massiva N,M:"<<endl;
cin>>n>>m;
a= new int*[n];
for(i=0;i<n;i++)
a[i]= new int[m];
for(j=0;j<m;j++)
for(i=0;i<n;i++)
{
cout<<"Vvedite a["<<i<<"]["<<j<<"]:";
cin>>a[i][j];
}
cout<<"Massiv A:"<<endl;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<< setw(3)<<a[i][j]<<"";
cout<<endl;
}
s=0;
for(i=0;i<n-1;i++)
{
for (j=0;j<n-1-i;j++)
if(a[i][j]<0)
s+=a[i][j];
}
cout<<"Summa="<<s<<"";
cout<<endl;
for (i=0; i<n; i++)
delete [] a[i];
delete []a;
a=NULL;
return 0;
}
Лабораторная работа №6
Вводится строка, каждое
слово которой отделяется от других
слов одним или несколькими
4. Найти слова с четным количеством символов.
#include <iostream.h>
#include <stdio.h>
#include <string.h>
int main()
{
char st[100],sl[100];
int mass[100];
int k=0,i,z=0,e=0;
puts("Vvedite stroky");
gets(st);
strcat (st," ");
puts("Slova s chetnim koli4estvom bykv:");
int n=strlen(st);
if (n<2) return 1;
sl[0] ='\0';
for (i=0;i<n;i++)
{
if(st[i] !=' ')
{
k++;
}
else
{
mass[e]=k;
k=0;
e++;
}
}
k=0;
for (i=0;i<e;i++)
{z=mass[i]%2;
if (z==0){
k++;}
}
cout<<k<<endl;
return 0;
}
Лабораторная работа №7
Создать массив структур, содержащий информацию согласно варианту индивидуального задания. Выполнить задание и вывести на экран полученный результат.
5. На междугородной АТС информация о разговорах содержит дату разговора, код и название города, время разговора, тариф, номер телефона абонента. Вывести для заданного города общее время разговоров с ним и сумму.
#include <iostream.h>
#include <conio.h>
#include <string.h>
struct ats
{
double data; //для упрощения вводиться как число, месяц (12.01)
int kod;
char name_gorod[100];
int time;
int tarif;
int nomer;
};
int main()
{
const int n=2;
ats mass[n+1];
int k=0,i,h=0;
double j=0;
for(i=0;i<n;i++)
{
cout<<"Vvedite daty:"<<endl;
cin>>mass[i].data;
cout<<"Vvedite kod:"<<endl;
cin>>mass[i].kod;
cout<<"Vvedite imya goroda:"<<endl;
cin>>mass[i].name_gorod;
cout<<"Vvedite vremya razgovora:"<<endl;
cin>>mass[i].time;
cout<<"Vvedite tarif:"<<endl;
cin>>mass[i].tarif;
cout<<"Vvedite nomer abonenta:"<<endl;
cin>>mass[i].nomer;
}
cout<<"Imya goroda:"<<endl;
cin>>mass[n+1].name_gorod;
for
(i=0;i<n;i++)
{
if(!strcmp(mass[n+1].name_
{k+=mass[i].time;
j+=k*mass[i].tarif;
h+=mass[i].time;
k=0;
}
}
cout<<"Vremya:"<<endl;
cout<<h<<endl;
cout<<"Stoimost:"<<endl;
cout<<j<<endl;
_getch();
return 0;
}
Лабораторная работа №8
Вывести на экран таблицу значений функции y(x) для x, изменяющегося от
a = 0,1 до b = 1,2 с шагом h = 0,1 (см. лабораторную работу №3, табл. 3.1).
Вычисление y(x) оформить в виде функции.
#include <iostream.h>
#include <iomanip.h>
#include <math.h>
typedef double(*was)(double, int);
void tabl(double,double,double,was)
double Y (double,int);
int main()
{
cout<<setw(5)<<"x"<<setw(12)<<
tabl(0.1,1.2,0.1,Y);
cout<<endl;
return 0;
}
void tabl(double a, double b,double h, was fun)
{
double summa;
for(double x=a;x<b+h/2;x+=h)
{
summa=fun(x,20);
cout<<setw(5)<<x<<setw(12)<<
}
}
double Y(double x,int n)
{
double d=pow(x,2-2)/2+1;
for(int i=2;i<=n;i++)
d+=pow(x,2*i-2)/2*i+1;
return d;
}
Лабораторная работа №9
Написать программу формирования файла, содержащего данные согласно варианту индивидуального задания. В программе предусмотреть сохранение вводимых данных в файл и возможность чтения из заранее сохраненного файла. Вывести результаты на экран и в текстовый файл.
7. На заводе производится
несколько наименований
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
FILE *fl;
typedef struct
{
char shop[20];
char name[20];
char number[5];
} TPart;
TPart part[30];
char name[20];
int nst = 0;
int Menu();
void Nnf();
void Newf();
void Spisok();
void Opf();
void Resc();
void Resf();
int main()
{
while (true)
{
switch (Menu())
{
case 1: Nnf(); break;
case 2: Newf(); break;
case 3: Spisok(); break;
case 4: Opf(); break;
case 5: Resc(); break;
case 6: Resf(); break;
case 7: return 0;
default: puts("Choose right!");
}
puts ("Press any key to continue");
getch ();
system ("cls");
}
}
int Menu()
{
cout << "Choose:" << endl;
cout << "1. Input file name" << endl;
cout << "2. New file" << endl;
cout << "3. Input data" << endl;
cout << "4. Open file" << endl;
cout << "5. Output result" << endl;
cout << "6. Output in file" << endl;
cout << "7. Exit" << endl;
int i;
cin >> i;
return i;
}
void Nnf()
{
cout << "Input file name" << endl;
cin >> name;
}
void Newf()
{
if ((fl = fopen(name,"wb")) == NULL)
{
cout << "Create error" << endl;
exit(1);
}
cout << "OK" << endl;
fclose(fl);
}
void Spisok()
{
if ((fl = fopen(name,"rb+")) == NULL)
{
cout << "Create error" << endl;
exit(1);
}
cout << "Input number of records" << endl;
cin >> nst;
for (int i=0; i<nst; i++)
{
cout << "Input name of shop: ";
cin >> part[i].shop;
cout << "Input name of part: ";
cin >> part[i].name;
cout << "Input number of parts: ";
cin >> part[i].number;
fwrite (&part[i], sizeof(TPart), 1, fl);
}
fclose (fl);
}
void Opf()
{
if ((fl = fopen (name,"rb")) == NULL)
{
cout << "Open error" << endl;
exit(1);
}
nst = 0;
TPart prt;
while (true)
{
int nwrt = fread (&prt, sizeof(TPart), 1, fl);
if (nwrt != 1) break;
part[nst] = prt;
cout << part[nst].shop << " " << part[nst].name << " " << part[nst].number << endl;
nst++;
}
fclose(fl);
}
void Resc()
{
cout << "Input name of shop: ";
char str[20];
cin >> str;
for (int i=0; i<nst; i++)
if (strcmp(part[i].shop, str) == 0)
cout << part[i].shop << " " << part[i].name << " " << part[i].number << endl;
}
void Resf()
{
cout << "Input name of shop: ";
char str[20];
cin >> str;
char namet[30];
FILE *ft;
cout << "Input file name" << endl;
cin >> namet;
if ((ft = fopen (namet,"w")) == NULL)
{
cout << "Create error" << endl;
exit(1);
}
char s[80];
for (int i=0; i<nst; i++)
if (strcmp(part[i].shop, str) == 0)
{
strcpy (s, part[i].shop);
strcat (s, " ");
strcat (s, part[i].name);
strcat (s, " ");
strcat (s, part[i].number);
strcat (s, "\n");
fputs (s, ft);
}
fclose(ft);
}
Лабораторная работа №10
В программе, составленной при выполнении лабораторной работы №9, выполнить сортировку заданным методом по неубыванию массива структур по указанному в индивидуальному задании ключу.
7. Ключ: код детали. Сортировка выбором.
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
FILE *fl;
typedef struct
{
char shop[20];
char name[20];
char kod[6];
char number[5];
} TPart;
TPart part[30];
char name[20];
int nst = 0;
int Menu();
void Nnf();
void Newf();
void Spisok();
void Opf();
void Resc();
void Resf();
void Sort();
int main()
{
while (true)
{
switch (Menu())
{
case 1: Nnf(); break;
case 2: Newf(); break;
case 3: Spisok(); break;
case 4: Opf(); break;
case 5: Resc(); break;
case 6: Resf(); break;
case 7: return 0;
default: puts("Choose right!");
}
puts ("Press any key to continue");
getch ();
system ("cls");
}
}
int Menu()
{
cout << "Choose:" << endl;
cout << "1. Input file name" << endl;
cout << "2. New file" << endl;
cout << "3. Input data" << endl;
cout << "4. Open file" << endl;
cout << "5. Sort and output result in screen" << endl;
cout << "6. Sort and output result in file" << endl;
cout << "7. Exit" << endl;
int i;
cin >> i;
return i;
}
void Nnf()
{
cout << "Input file name" << endl;
cin >> name;
}
void Newf()
{
if ((fl = fopen(name,"wb")) == NULL)
{
cout << "Create error" << endl;
exit(1);
}
cout << "OK" << endl;
fclose(fl);
}
void Spisok()
{
if ((fl = fopen(name,"rb+")) == NULL)
{
cout << "Create error" << endl;
exit(1);
}
cout << "Input number of records" << endl;
cin >> nst;
for (int i=0; i<nst; i++)
{
cout << "Input name of shop: ";
cin >> part[i].shop;
cout << "Input name of part: ";
cin >> part[i].name;
cout << "Input kod of part: ";
cin >> part[i].kod;
cout << "Input number of parts: ";
cin >> part[i].number;
fwrite (&part[i], sizeof(TPart), 1, fl);
}
fclose (fl);
}
void Opf()
{
if ((fl = fopen (name,"rb")) == NULL)
{
cout << "Open error" << endl;
exit(1);
}
nst = 0;
TPart prt;
while (true)
{
int nwrt = fread (&prt, sizeof(TPart), 1, fl);
if (nwrt != 1) break;
part[nst] = prt;
cout << part[nst].shop << " " << part[nst].name << " " << part[nst].kod << " " << part[nst].number << endl;
nst++;
}
fclose(fl);
}
void Resc()
{
Sort();
for (int i=0; i<nst; i++)
cout << part[i].shop << " " << part[i].name << " " << part[i].kod << " " << part[i].number << endl;
}
void Resf()
{
Sort();
char namet[30];
FILE *ft;
cout << "Input file name" << endl;
cin >> namet;
if ((ft = fopen (namet,"w")) == NULL)
{
cout << "Create error" << endl;
exit(1);
}
char s[80];
for (int i=0; i<nst; i++)
{
strcpy (s, part[i].shop);
strcat (s, " ");
strcat (s, part[i].name);
strcat (s, " ");
strcat (s, part[i].kod);
strcat (s, " ");
strcat (s, part[i].number);
strcat (s, "\n");
fputs (s, ft);
}
fclose(ft);
}
void Sort()
{
int imin, i, j;
TPart t;
for(i = 0; i < nst; i++)
{
imin = i;
for (j = i+1; j < nst; j++)
if (atoi (part[imin].kod) > atoi (part[j].kod))
imin = j;
if (imin != i)
{
t = part[imin];
part[imin] = part[i];
part[i] = t;
}
}
}
Лабораторная работа №11
В программе, составленной
при выполнении лабораторной работы
№10, найти в отсортированном
7. Найти деталь с кодом 89383.
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
FILE *fl;
typedef struct
{
char shop[20];
char name[20];
char kod[6];
char number[5];
} TPart;
TPart part[30];
char name[20];
int nst = 0;
int Menu();
void Nnf();
void Newf();
void Spisok();
void Opf();
void Resc_s();
void Resf_s();
void Resc_b();
void Resf_b();
int Find_b();
int Find_b();
void Sort();
int main()
{
while (true)
{
switch (Menu())
{
case 1: Nnf(); break;
case 2: Newf(); break;
case 3: Spisok(); break;
case 4: Opf(); break;
case 5: Resc_s(); break;
case 6: Resf_s(); break;
case 7: Resc_b(); break;
case 8: Resf_b(); break;
case 9: return 0;
default: puts("Choose right!");
}
puts ("Press any key to continue");
getch ();
system ("cls");
}
}
int Menu()
{
cout << "Choose:" << endl;
cout << "1. Input file name" << endl;
cout << "2. New file" << endl;
cout << "3. Input data" << endl;
cout << "4. Open file" << endl;
cout << "5. Find simple and output result in screen" << endl;
cout << "6. Find simple and output result in file" << endl;
cout << "7. Find binary and output result in screen" << endl;
cout << "8. Find binary and output result in file" << endl;
cout << "9. Exit" << endl;
int i;
cin >> i;
return i;
}
void Nnf()
{
cout << "Input file name" << endl;
cin >> name;
}
void Newf()
{
if ((fl = fopen(name,"wb")) == NULL)
{
cout << "Create error" << endl;
exit(1);
}
cout << "OK" << endl;
fclose(fl);
}
void Spisok()
{
if ((fl = fopen(name,"rb+")) == NULL)
{
cout << "Create error" << endl;
exit(1);
}
cout << "Input number of records" << endl;
cin >> nst;
for (int i=0; i<nst; i++)
{
cout << "Input name of shop: ";
cin >> part[i].shop;
cout << "Input name of part: ";
cin >> part[i].name;
cout << "Input kod of part: ";
cin >> part[i].kod;
cout << "Input number of parts: ";
cin >> part[i].number;
fwrite (&part[i], sizeof(TPart), 1, fl);
}
fclose (fl);
}
void Opf()
{
if ((fl = fopen (name,"rb")) == NULL)
{
cout << "Open error" << endl;
exit(1);
}
nst = 0;
TPart prt;
while (true)
{
int nwrt = fread (&prt, sizeof(TPart), 1, fl);
if (nwrt != 1) break;
part[nst] = prt;
cout << part[nst].shop << " " << part[nst].name << " " << part[nst].kod << " " << part[nst].number << endl;
nst++;
}
fclose(fl);
}
int Find_s()
{
for (int i=0; i<nst; i++)
if ( atoi (part[i].kod) == 89383 )
return i;
}
int Find_b()
{
int i = 0, j = nst-1, m;
while (i<j)
{
m = (i+j)/2;
if (89383 > atoi (part[m].kod))
i = m+1;
else
j = m;
}
if (atoi (part[i].kod) == 89383 )
return i;
}
void Resc_s()
{
Sort();
int i=Find_s();
cout << part[i].shop << " " << part[i].name << " " << part[i].kod << " " << part[i].number << endl;
}
void Resf_s()
{
Sort();
char namet[30];
FILE *ft;
cout << "Input file name" << endl;
cin >> namet;
if ((ft = fopen (namet,"w")) == NULL)
{
cout << "Create error" << endl;
exit(1);
}
char s[80];
int i=Find_s();
strcpy (s, part[i].shop);
strcat (s, " ");
strcat (s, part[i].name);
strcat (s, " ");
strcat (s, part[i].kod);
strcat (s, " ");
strcat (s, part[i].number);
strcat (s, "\n");
fputs (s, ft);
fclose(ft);
}
void Resc_b()
{
Sort();
int i=Find_b();
cout << part[i].shop << " " << part[i].name << " " << part[i].kod << " " << part[i].number << endl;
}
Информация о работе Контрольная работа по "Основам алгоритмов и программирования"