Автор работы: Пользователь скрыл имя, 11 Января 2014 в 16:34, контрольная работа
Создать программу вычисления указанной величины.
При x = 3.981´10-2, y = –1.625 ´ ´103, z = 0.512 ® a = 1.26185.
Текст программы
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
Министерство образования республики Беларусь
Учреждение образования
«БЕЛОРУССКИЙ
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Институт информационных технологий
Специальность Промышленная электроника
КОНТРОЛЬНАЯ РАБОТА
По курсу основы алгоритмизации и программирования
Вариант № 10
Студент-заочник 1 курса
Группы № 983124
ФИО Горбунов Александр Сергеевич
Адрес г. Минск, пер. Козлова д.16б кв.19
Тел. (033) 6636182
Минск, 2009
Задание 1. Создать программу вычисления указанной величины.
При x = 3.981´10-2, y = –1.625 ´ ´103, z = 0.512 ® a = 1.26185. |
Блок схема алгоритма программы
Текст программы
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#pragma hdrstop
#pragma argsused
int main(int argc, char* argv[])
{
double x, y, z, a, b, c, rez;
cout << "\n\t x,y,z = " << endl;
cin >> x >> y >> z;
a = pow(2,-x);
b = sqrt(pow(fabs(y),1/4)+x);
c = pow(exp(x-1/sin(z)),1/3);
rez = a*b*c;
cout << "\n x = " << x << "\n y = " << y << "\n z = " << z
<< "\nRezult = " << rez<< endl;
cout << "Press any key ... " << endl;
getch();
return 0;
}
Экранные формы
Задание 2. Составить программу для вычисления значения rez в зависимости от поставленного условия. Обратите внимание, что возможен случай, при котором исходные данные не будут подходить ни для одного из предложенных условий.
rez = .
Блок схема алгоритма программы.
Текст программы
#include <vcl.h>
#include <iostream.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#pragma hdrstop
#pragma argsused
int main(int argc, char* argv[])
{
double s, n, e, u,a;
cout << "\n Input s, n" << endl; \\ вводим значения s, n
cin >> s >> n ;
if ((fabs(n)/2<s)&&(s<=fabs(n)))
{
u = sqrt(fabs(s*exp(2)- n*exp(-2))); \\ вычисление
cout << " |n|/2 < s <= |n|" << endl;
cout << "\n\t Rezult U = " << u; \\ вывод результата
}
else if (s>fabs(n))
{
u = sqrt(fabs(s-n)*pow(sin(s+n),3)
cout << "\n s > |n|" << endl;
cout << "\n\t Rezult U = " << u; \\ вывод результата
}
else
cout << "\n Znacheniya ne podxodyat dla ysloviy" << endl;
cout <<"\n Press any key ... " << endl ;
getch ();
return 0;
}
Экранные формы
Если
Если S > | N |
Если значения не подходят под условия
Задание 3. Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.
, .
Блок схема алгоритма программы
Текст программы
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#pragma hdrstop
#pragma argsused
void fak( double v,double fak);
int main(int argc, char* argv[])
{
double Factorial (int v);
double a, b, x, h, r, s, y, f;
int n, k;
cout << " a = 0,1 ,b = 1,h = 0,1,n = 10" << endl;
cin >> a >> b >> h >> n;
for(x = a; x<=b; x+=h) {
r = s = 0;
for(k = 1; k<=n; k++) {
r=pow(x,2*k)/Factorial(2*k);
s+=r;
}
y=(exp(x)-exp(-x))/2;
f = fabs(y - s);
cout << "\n x= " << x << " sum= " << s <<" y= "<< y<<" f= "<<f;
}
cout << "\nPress any key ... " << endl;
getch();
}
double Factorial (int v)
{
double f;
if (v<=1)
f = 1 ;
else
f =Factorial(v-1)*v;
return f;
}
Экранные формы
Задание 4. В одномерном целочисленном
массиве (размер массива (не больше 20) и
значения его элементов вводить с клавиатуры)
вычислить:
Сумму модулей элементов массива, расположенных после минимального по модулю элемента.
Блок схема алгоритма программы.
Текст программы
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#pragma hdrstop
#pragma argsused
int main(int argc, char* argv[])
{
int a[20], n, i,i_min, s ;
cout << "\t Input N (<=20) ";
cin >> n;
cout <<"\n\t Massiv A" << endl;
for(i = 0; i < n; i++) {
cout << "\t a[ " << i+1 << " ] = ";
cin >> a[i];
}
i_min=0; /* Берем первый элемент за мин*/
s=0; /* Обнуляем сумму */
for(i=1; i<n;i++) /* Перебираем элементы*/
if(fabs(a[i])>fabs(a[i_min])) /*Если стоит после минимального прибавить к сумме */
s += fabs(a[i]);
else
{
s=0;
a[i_min]=fabs(a[i]); } /*Присваиваем значение минимального*/
cout << "\n min po mod = " << a[i_min] << "\t Summa = " << s << endl;
cout << "\n Press any key ... " << endl;
getch();
return 0;
}
Экранные формы
Задание 5. В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти указанное значение.
Массив в памяти разместить динамически (с использованием операций new и delete), ввод исходных данных и вывод полученных результатов выполнить в основной функции, а решение задачи оформить в виде отдельной функции пользователя. Не использовать глобальных переменных.
Найти число элементов массива > Т и их произведение. Значение Т вводится с клавиатуры.
Блок
схема алгоритма программы
Текст программы
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#pragma hdrstop
#pragma argsused
int main(int argc, char* argv[])
{ int Fun_Pr_Kol(int, int,int, int**, int*); // Описание прототипа функции
int **a, i, j, n, m, pr,t, kol;
cout << "\t Input N, M, t : ";
cin >> n >> m >> t;
a = new int*[n]; // Захват памяти под указатели
for(i=0; i<n;i++)
a[i] = new int[m]; // Захват памяти под элементы
cout <<"\n Input A" << endl;
for(i=0; i<n; i++)
for(j=0; j<m; j++){
cout << "\t a[" << i+1 << "][" << j+1 << "] = ";
cin >> a[i][j];
}
cout <<"\n Matrix A:" << endl;
for(i=0; i<n; i++) {
for(j=0; j<m; j++)
cout << "\t" << a[i][j];
cout << endl;
}
// Обращение к функции
с указанием фактических
pr = Fun_Pr_Kol(n, m, t, a, &kol);
cout << "\n Kol-vo = " << kol << "\t Proizv = " << pr << endl;
delete []a; // Освобождение памяти
cout << "\n\t Delete !" << endl;
cout << " Press any key ... " << endl;
getch();
}
int Fun_Pr_Kol(int a, int b, int t, int **x, int *k)
{
int i, j, p = 1;
*k = 0;
for(i=0; i<a;i++)
for(j=0; j<b;j++)
if(x[i][j]>t ){
}
return p; }
Экранные формы
Задание 6. Написать программу
обработки файла типа запись, содержащую
следующие пункты меню: «Создание», «Просмотр»,
«Коррекция» (добавление новых данных
или редактирование старых), «Решение
индивидуального задания».
Каждая запись должна содержать следующую информацию о студентах:
– фамилия и инициалы;
– номер группы;
– оценки за семестр: по физике, математике, информатике, химии;
– средний балл.
Организовать ввод исходных данных, средний балл рассчитать по введенным оценкам.
Содержимое
всего файла и результаты решения
индивидуального задания
Распечатать анкетные данные студентов интересующей вас группы, имеющих неудовлетворительную оценку (меньше 4).
Текст программы
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <io.h>
struct TZap{
char FIO[20];
char group[7];
double s_b;
double mat;
double fiz;
double inf;
double xim;
} Zap;
int size = sizeof(TZap);
FILE *Fz, *Ft;
char File_Zap[] = "zapisi.dat";
char File_Rez[] = "rezult.txt";
void Out(TZap);
#pragma argsused
int main(int argc, char* argv[])
{
int kod, D_f, i=0, j, kol;
long len;
TZap st, *mas_Z;
Ft = fopen(File_Rez, "w");
while(true) {
puts("\n Create - 1\n Add - 2\n View - 3\n Sort - 4\n EXIT - 0");
scanf("%d", &kod);
switch(kod) {
case 1:
if ((Fz=fopen(File_Zap,"wb"))==
puts("\n Create ERROR!");
return 0;
}
fclose(Fz);
printf("\n Create New File %s !\n",File_Zap);
break;
case 2:
Fz = fopen(File_Zap,"ab");
printf("\n F.I.O. - ");
fflush(stdin);
gets(Zap.FIO);
gets(Zap.group);
printf(" Matematika - ");
scanf("%lf", &Zap.mat);
scanf("%lf", &Zap.fiz);
scanf("%lf", &Zap.xim);
scanf("%lf", &Zap.inf);
fwrite(&Zap, size, 1, Fz);
fclose(Fz);
break;
case 3:
if ((Fz=fopen(File_Zap,"rb"))==
puts("\n Open ERROR!");
return 0;
}
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 < kol; i++)
fread((mas_Z+i), size, 1, Fz);
fclose(Fz);
// Вывод на экран
// Запись такой же информации в текстовый файл Ft
for (i=0; i<kol; i++)
delete []mas_Z;
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 < kol; i++)
fread((mas_Z+i), size, 1, Fz);
fclose(Fz);
//Вывод на экран
printf("\n\t-----BAL NIGE SREDNEGO-----\n");
// Запись такой же информации в файл
fprintf(Ft,"\n\t----- BAL NIGE SREDNEGO -----\n");
for (i=0; i<kol; i++)
Out(mas_Z[i]); }
delete []mas_Z;
break;
case 0:
fclose(Ft);
return 0;
}
}
return 0;
}
//----------------- Функция вывода на экран и в файл --------------------
void Out(TZap z)
{
printf("\n %20s|%10s| %6.2lf | %6.2lf | %6.2lf | %6.2lf | %6.2lf ", z.FIO, z.group, z.mat, z.fiz, z.xim, z.inf, z.s_b);
fprintf(Ft, "\n %20s|%10s| %6.2lf | %6.2lf | %6.2lf | %6.2lf | %6.2lf ", z.FIO, z.group, z.mat, z.fiz, z.xim, z.inf, z.s_b);
}
Экранные формы
Информация в текстовом файле
Информация о работе Основы алгоритмизации и программирования