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

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

ОАИП 2 вариант (1 курс 1 семестр) ИТИУТС
Подробности о скачивании 28.05.2011, 00:36
Индивидуальные задания № 1
Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.

2. .
При x = –4.5, y = 0.7510-4,
z = 0.845102  u = –55.6848.

Решение:
Код:
// Зание № 1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <io.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
double u1=0,u2=0,u3=0,u=0,x=0,y=0,z=0;
cout<<"Vvedite znacheniya peremennix"<<endl;
cout<<"x: ";
cin>>x;
cout<<endl<<"y: ";
cin>>y;
cout<<endl<<"z: ";
cin>>z;

u1=pow((8+pow((double)abs(x-y),(double)2)+1),(double)(1/3))/(pow(x,(double)2)+pow(y,(double)2)+2);
u2=pow((double)(pow(tan(z),(double)2)+1),x);
u3=exp(abs(x-y));

u=u1-u2*u3;
cout<<"Result u = "<<u<<" pri x = "<<x<<", pri y = "<<y<<", pri z = "<<z<<endl;
return 0;
}

Скриншот:

Индивидуальные задания № 2
Составить программу для вычисления значения rez в зависимости от поставленного условия.
Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен. Обратите внимание, что возможен случай, при котором исходные данные не будут подходить ни для одного из предложенных условий.
2. rez =
Решение:
Код:
// Задание № 2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <io.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
double fi=0,Q=0,rez=0;
cout<<"Vvedite znacheniya peremennix"<<endl;
cout<<"fi: ";
cin>>fi;
cout<<endl<<"Q: ";
cin>>Q;

if (abs(fi)<(5*abs(Q)))
{
rez=log(abs(2*fi-3*exp((double)2)*Q));
cout<<"Proshli cherez verhnuu vetv'! rez = "<<rez;

}
else if (abs(fi)<=(7.5*Q) && abs(fi)>(5*abs(Q)))
{
rez=log(abs(2*pow(fi,(double)2)-3*Q));
cout<<"Proshli cherez nijnuu vetv'! rez = "<<rez;

}
else { cout<<"Fi and Q ne podhodyat!";}
return 0;
}

Скриншот:

Индивидуальные задания № 3
Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры. Так как значение S(x) является рядом разложения функции Y(x), при правильном решении значения S и Y для заданного аргумента x (для тестовых значений исходных данных) должны совпадать в целой части и в первых двух-четырех позициях после десятичной точки.
Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.
2. .
Решение:
Код:
// Задание № 3.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <io.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
double a=0,b=0,h=0,n=0,S=0,Y=0,x;
cout<<"Vvedite znacheniya peremennix"<<endl;
cout<<"a: ";
cin>>a;
cout<<endl<<"b: ";
cin>>b;
cout<<endl<<"h: ";
cin>>h;
cout<<endl<<"n: ";
cin>>n;

x=a;
int i=1;
while (x<=b)
{
Y=x*atan(x)-log(sqrt(1+pow(x,(double)2)));
S+=pow(double(-1),(i+1))*(pow(x,2*i))/(2*i*(2*i-1));
cout<<"x = "<<x<<" S = "<<S<<" Y = "<<Y<<" |Y(x)-S(x)| = "<<abs(Y-S)<<endl;
x+=h;
i++;

}
return 0;
}

Скриншот:

Индивидуальные задания № 4
В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить:
2. Сумму элементов массива, расположенных между первым и последним нулевыми элементами.
Решение:
Код:
// Задание № 4.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <io.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int mas[20],n=0,Sum=0,flag=0;
cout<<"Vvedite kolichestvo elementov N:"<<endl;
cin>>n;
cout<<endl<<"Vvedite elementy massiva: "<<endl;
for (int i=0;i<n;i++)
{
cin>>mas[i];

}

for (int i=0;i<n;i++)
{
if (mas[i]==0 && flag==0)flag=1;
if (flag==1)Sum+=mas[i];
if (mas[i+1]==0 && flag==1){Sum+=mas[i+1];break;}

}
cout<<"Summa = "<<Sum;
return 0;
}

Скриншот:

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

Решение:
Код:
// Задание № 5.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <io.h>

using namespace std;

void sumDiag(int **mas,int m,int n)
{int Sum=0;
for (int i=0;i<m;i++)
{
for (int j=0;j<n;j++)
{
if (j==i)Sum+=mas[i][j];
}
}
cout<<"Summa glavnoi diagonali = "<<Sum;

}

int _tmain(int argc, _TCHAR* argv[])
{
int **mas,M=0,N=0;

cout<<"Vvedite razmer matrici M x N: "<<endl;
cin>>M;
cin>>N;
mas=new int*[M];
for (int i=0;i<M;i++)
{
mas[i]=new int[N];
}

for (int i=0;i<M;i++)
{cout<<"Vvedite elementy "<<i<<"-oi stroki ";
for (int j=0;j<N;j++)
{
cin>>mas[i][j];
}

}

sumDiag(mas,M,N);
return 0;
}

Скриншот:

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

2. Распечатать анкетные данные студентов-отличников, фамилии которых начинаются с интересующей вас буквы.

Решение:
Код:
// Задание № 6.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <io.h>

using namespace std;

FILE *Fz, *Ft;
struct TZap{
char FIO[30];
char birthd[15];
int num_gr;
int mas[4];
double s_b;
} Zap;
void Out(TZap z)
{
printf("\n %1s , \t%10s, \t%x, \t%x, \t%x,\t %x,\t %x,\t %x", z.FIO,z.birthd,z.num_gr,z.mas[0],z.mas[1],z.mas[2],z.mas[3],z.s_b);
fprintf(Ft,"\n %1s ,\t %10s, \t%x, \t%x,\t %x, \t%x,\t %x,\t %x", z.FIO,z.birthd,z.num_gr,z.mas[0],z.mas[1],z.mas[2],z.mas[3],z.s_b);
}

int _tmain(int argc, _TCHAR* argv[])
{
int size = sizeof(TZap);
char File_Zap[] = "zapisi.txt";
char File_Rez[] = "rezult.txt";
void Out(TZap);

int kod, D_f, i=0, j, kol;
long len;
double *srb,srr;
TZap st, *mas_Z;
Ft = fopen(File_Rez, "w");
while(true) {
puts("\n Create – 1\n Add – 2\n View – 3\n Perfect_Students – 4\n EXIT – 0");
scanf("%d", &kod);
switch(kod) {
case 1:
if ((Fz=fopen(File_Zap,"w"))==NULL) {
puts("\n Create ERROR!");

}
fclose(Fz);
printf("\n Create New File %s !\n",File_Zap);
break;
case 2:
Fz = fopen(File_Zap,"a");
printf("\n F.I.O. – ");
fflush(stdin);
gets(Zap.FIO);
printf(" BirthDay – ");
fflush(stdin);
gets(Zap.birthd);
printf(" Group – ");
scanf("%x" , &Zap.num_gr);
printf(" Physics – ");
fflush(stdin);
scanf("%x", &Zap.mas[0]);
printf(" Math – ");
fflush(stdin);
scanf("%x", &Zap.mas[1]);
printf(" Informatica – ");
fflush(stdin);
scanf("%x", &Zap.mas[2]);
printf(" Chemistry – ");
fflush(stdin);
scanf("%x", &Zap.mas[3]);
//srr=(double(Zap.mas[0]+Zap.mas[1]+Zap.mas[2]+Zap.mas[3])/double(4));
printf(" Sr ball – ");
fflush(stdin);
scanf("%x", &Zap.s_b);

fwrite(&Zap, size, 1, Fz);
fclose(Fz);
break;
case 3:
if ((Fz=fopen(File_Zap,"r"))==NULL) {
puts("\n Open ERROR!");

}
// Вывод на экран
printf("\n\-------FIO------Birthday--------Group--Physics--Math--Inform--Chem--SR_BAL");
// Запись такой же информации в текстовый файл Ft
fprintf(Ft,"\n\------FIO------Birthday--------Group--Physics--Math--Inform--Chem--SR_BAL");
while(1) {
if(!fread(&Zap,size,1,Fz)) break;
Out(Zap);
}
fclose(Fz);
break;
case 4:
Fz = fopen(File_Zap,"r");
D_f = fileno(Fz);
char fl[1];
len = filelength(D_f);
kol = len/size;
mas_Z = new TZap[kol];
// Считываем записи из файла в динамический массив
for (i=0; i < kol; i++)
fread((mas_Z+i), size, 1, Fz);
fclose(Fz);
printf(" VVedite Pervuu bukvu familii – ");
fflush(stdin);
gets(fl);
for (i=0; i<kol; i++)
{if (mas_Z[i].FIO[0]==fl[0] && ((mas_Z[i].mas[0]+mas_Z[i].mas[1]+mas_Z[i].mas[2]+mas_Z[i].mas[3])/4)==5)Out(mas_Z[i]);}
delete []mas_Z;
break;
case 0:
fclose(Ft);
return 0;
break;
}
}

return 0;
}

Скриншот:
Категория: Другое | Добавил: LOON
Просмотров: 2555 | Загрузок: 55
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]