bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [236]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ИТиУвТС » Другое

Контрольная работа по ОАиП
Подробности о скачивании 21.03.2011, 23:25
Министерство образования Республики Беларусь
Учреждение образования
«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Институт информационных технологий

Специальность ИТ и УТС

КОНТРОЛЬНАЯ РАБОТА №1

По курсу «Основы алгоритмизации и програмирования»

Вариант № 3

Минск, 2010

1. Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях:

Приx = 3.7410-2, y = –0.825,
z = 0.16102 v = 1.0553.

Cхема алгоритма:

Кодпрограммы:
#include
#include
#include
int main()
{ double x, y, z, a, b, c, v;
puts("\n x, y, z = \n");
scanf("%lf %lf %lf", &x, &y, &z);
a=1+pow(sin(x+y),2);
b=fabs(x-(2*y/(1+x*x*y*y)));
c=pow(cos(atan(1/z)),2);
v=(a/b)*pow(x,fabs(y))+c;
printf("\n x = %5.1lf\n y = %5.1lf\n z = %5.1lf\n v = %5.4lf\n", x, y, z, v);
puts("Press any key ... ");
getch();
return 0;}

Результат выполнения программы:

2.Составить программу для вычисления значения rez в зависимости от поставленного условия. Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен.
rez =

Схема алгоритма:

Код программы:
#include
#include
#include
void main()
{ double k1, k2, rez;
puts("\n Vvedite k1, k2: ");
scanf("%lf%lf",&k1,&k2);
if (((k1*k2)>0)&&((k1*k2)<=1))
{rez=sqrt(fabs(2*k1-5*pow(k2,2)))*exp(k1+k2);
printf(" Vvedennye znachenija udovletvorjajut 1-mu usloviju \n\t rez=%5.3lf",rez);}
else if ((k1*k2)>1)
{rez=sqrt(fabs(2*pow(k1,2)+5*k2))*exp(k1-k2);
printf("\n Vvedennye znachenija udovletvorjajut 2-mu usloviju \n\t rez=%5.3lf",rez);}
else printf("\n Vvedennye znachenija ne udovletvorjajut ni odnomu iz uslovij");
puts("\n Press any key ... ");
getch();}
Результат выполнения программы:
1)

2)

3)

3. Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметраn выбрать в зависимости от задания.

Схема алгоритма:

Код программы:

#include
#include
#include
void main()
{ double a, b, x, h, r, s, y, p=M_PI, raz;
int n, k;
puts("Vvedite a, b, h, n");
scanf("%lf%lf%lf%d", &a, &b, &h, &n);
for(x = a; x<=b; x+=h)
{ r=s=1;
for(k = 1; k<=n; k++)
{ r=cos(k*p/4)*r*pow(x,k)/k;
s+=r; }
y=exp(x*cos(p/4))*cos(x*sin(p/4));
raz=y-s;
printf("\n x= %5.1lf y= %5.4lf s= %5.4lf y-s= %5.4lf",x,y,s,raz); }
puts("\nPress any key ... ");
getch();
}

Результат выполнения программы:

4.В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить сумму элементов массива, расположенных до последнего положительного элемента.

Схема алгоритма:

Код программы:

#include
#include
#include
#define n 10
void main()
{ int a[n],i,s=0,k=0;
puts("Vvedite elementy massiva\n");
for(i=0;i printf(" Massiv\n");
for(i=0;i for(i=0;i0) k=i;
if(k==0) printf("\nPolozhitelnyh elementov net");
for(i=0;i printf("\n Summa ravna %i",s);
puts("\nPress any key ... ");
getch(); }

Результат выполнения программы:

1)

2)

5. В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.
Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных. Найти максимальный элемент и поменять его с первым элементом.

Кодпрограммы:

#include
#include
#include
voidchangeMaxAndMin(int **a, int n, int m);
void main() {
int **a, i, j, n, m;
puts("Vvedite N, M :");
scanf("%d%d", &n, &m);
a = new int*[n];
for (i = 0; i < n; i++) {
a[i] = new int[m]; }
puts("Vvediteelementymassiva:");
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
printf("a[%d][%d] = ", i, j);
scanf("%d", &a[i][j]); } }
puts("\n Ishodnyjmassiv: ");
for (i = 0; i< n; i++) {
for (j = 0; j < m; j++) {
printf(" %4d ", a[i][j]); }
printf("\n"); }
changeMaxAndMin(a, n, m);
puts("Poluchennyjmassiv: ");
for (i = 0; i< n; i++) {
for (j = 0; j < m; j++) {
printf(" %4d ", a[i][j]); }
printf("\n"); }
puts("Press any key ... ");
getch(); }
voidchangeMaxAndMin(int **a, int n, int m) {
int i, j, max1, max2, max_value;
max_value = a[0][0];
max1 = 0;
max2 = 0;
for(i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
if (a[i][j] >max_value) {
max_value = a[i][j];
max1 = i;
max2 = j;
} } }
a[max1][max2] = a[0][0];
a[0][0] = max_value; }

Результат выполнения программы:

6. Написать программу обработки файла типа запись, содержащую следующие пункты меню: «Создание», «Просмотр», «Коррекция» (добавление новых данных или редактирование старых), «Решение индивидуального задания».
Каждая запись должна содержать следующую информацию о студентах:
– фамилия и инициалы;
– год рождения;
– номер группы;
– оценки за семестр: по физике, математике, информатике, химии;
– средний балл.
Организовать ввод исходных данных, средний балл рассчитать по введенным оценкам.Содержимое всего файла и результаты решения индивидувльного задания записать в текстовый файл. Распечатать анкетные данные студентов-отличников из интересующей вас группы.

Код программы:

#include
#include
#include
#include
#include
#pragma hdrstop
#pragma argsused
struct TZap{char FIO[30]; int DataRojd; int NomGr;
int Fizika; int Math; int Inform; int Himia;
double s_b;
}Zap;
int size = sizeof(TZap);
FILE *Fz, *Ft;
char File_Zap[ ]="zapisi.dat";
char File_Rez[ ]="rezult.txt";
void Out(TZap);
void main()
{
int kod, D_f,i=0,j,kol;
long len;
TZap st, *mas_Z;
Ft = fopen(File_Rez, "w");
while(1){
puts("\n SOZDANIE-1\n REDAKTIROVANIE-2\n PROSMOTR-3\n RESHENIE INDIVIDUALNOGO ZADANIA-4\n VIHOD-0");
scanf("%d",&kod);
switch(kod){
case 1:
if((Fz=fopen(File_Zap, "wb"))==NULL){
puts("\nCREATE ERROR!");
return; }
fclose(Fz);
printf("\nCreate New File %s!\n",File_Zap);
break;
case 2:
Fz=fopen(File_Zap,"ab");
printf("\nF.I.O. - ");
fflush(stdin);
gets(Zap.FIO);
printf("\nData rozdenia - ");
scanf("%d",&Zap.DataRojd);
printf("\nNomer gruppi - ");
scanf("%d",&Zap.NomGr);
printf("\nOcenka po fizike - ");
scanf("%d",&Zap.Fizika);
printf("\nOcenka po matematike - ");
scanf("%d",&Zap.Math);
printf("\nOcenka po informatike - ");
scanf("%d",&Zap.Inform);
printf("\nOcenka po himii - ");
scanf("%d",&Zap.Himia);
Zap.s_b=(Zap.Fizika+Zap.Math+Zap.Inform+Zap.Himia)/4.;
fwrite(&Zap,size,1,Fz);
fclose(Fz);
break;
case 3:
if((Fz=fopen(File_Zap,"rb"))==NULL){
puts("\nOPEN ERROR!");
return; }
printf("\n\t------INFORMATIONS------");
fprintf(Ft,"\n\t------INFORMATIONS------");
while(1){
if(!fread(&Zap,size,1,Fz))break;
Out(Zap); }
fclose(Fz);
break;
case 4:
Fz=fopen(File_Zap,"rb");
D_f=fileno(Fz);
len=filelength(D_f);
kol=len/size;
mas_Z=new TZap[kol];
for(i=0;i fread((mas_Z+i),size,1,Fz);
fclose(Fz);
printf("\n\t------OTLICHNIKI------");
fprintf(Ft,"\n\t------OTLICHNIKI------");
for(i=0;i {if(mas_Z[i].s_b>=9)
Out(mas_Z[i]);}
delete []mas_Z;
break;
case 0:
fclose(Ft);
return;
}}}
void Out(TZap z) {
printf("\n%20s,%d,%6d,%d,%d,%d,%d,%5.2lf.", z.FIO, z.DataRojd, z.NomGr, z.Fizika, z.Math, z.Inform, z.Himia, z.s_b);
fprintf(Ft,"\n%20s,%d,%d,%d,%d,%d,%d,%5.2lf.",z.FIO,z.DataRojd,z.NomGr, z.Fizika, z.Math, z.Inform, z.Himia, z.s_b); }

Результат выполнения программы:

ЛИТЕРАТУРА

1. Основы алгоритмизации и программирования. Язык Си : учеб. пособие / М. П. Батура, В. Л. Бусько, А. Г. Корбит, Т. М. Кривоносова. – Минск : БГУИР, 2007.
2. Конспект лекций по курсу «Основы алгоритмизации и программирования» для студентов всех специальностей и всех форм обучения. / Бусько В.Л., Корбит А.Г., Кривоносова Т.М.- Мн.: БГУИР, 2004.
3. Методические указания по выполнению контрольной работыпо курсу «Основы алгоритмизации и программирования» для студентов заочного отделения ИИТ. / Корбит А.Г., Кривоносова Т.М. – Минск: БГУИР, 2007.

Категория: Другое | Добавил: SvetlyachoK_1989
Просмотров: 2709 | Загрузок: 37 | Комментарии: 1
Всего комментариев: 1
0  
1 kosatka2009   (11.05.2011 02:08) [Материал]
7 вариант есть!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]