Алгоритмічні мови програмування
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
y)>max) max=fabs(y);
printf("\nx = %.3f\t y = %.3f", i, y);//Выведение значения У на экран
i=i+h;
}
while (i <= b);
printf("\n\nДля выведения графика нажмите любую клавишу");
getch();
detectgraph(&g_driver, &g_mode); //Определение графического адаптера и графического режима
initgraph(&g_driver, &g_mode, ""); //Инициализация графической системы
if ((gerr = graphresult()) != grOk)
printf("\nОшибка графики: %s\n", grapherrormsg(gerr)); //Выдача сообщения об ошибке
cleardevice(); //Очистка экрану
XMAX=getmaxx(); YMAX=getmaxy(); //Определение максимальных значений X и Y
setbkcolor(0); //Установка цвета фона
setcolor(14); // Установка текущего цвета рисования
setlinestyle(0,0,2); // Установка стиля линий: тип - сплошная, толщина=2
line(0,YMAX/2,XMAX,YMAX/2);//Построение осей координат
line(XMAX,YMAX/2,XMAX-10,YMAX/2-10);
line(XMAX,YMAX/2,XMAX-10,YMAX/2+10);
line(XMAX/2,0,XMAX/2,YMAX);
line(XMAX/2,0,XMAX/2-10,10);
line(XMAX/2,0,XMAX/2+10,10);
i=a;
j=0;
settextstyle(1,0,0);
setusercharsize(1, 1, 3, 2);
do
{
y=F(i);
setcolor(14);
setlinestyle(1,0,3);
circle(j*XMAX*h/(b-a),(YMAX/2-y*YMAX/(2*max)),2); //Выведение точек табуляции
sprintf(msg, "%.2f", i);
outtextxy(j*XMAX*h/(b-a),YMAX/2,msg); //Значения на оси Х
setcolor(15);
setlinestyle(0,0,2);
line(j*XMAX*h/(b-a), YMAX/2-3,j*XMAX*h/(b-a), YMAX/2+3); //Розметка на оси Х
j=j+1;
i=i+h;
}
while (i <= b);
for (i=a,j=0; i<=b;j++, i=i+(b-a)/XMAX) //Выведение всех точек на промежутке [a,b]
putpixel(j,(YMAX/2-F(i)*YMAX/(2*max)),14);
getch(); //Чтение символа с клавиатуры
closegraph(); //Закрытие графического режима
return 0; //Завершение работы программы
}
float F (float x) //Вычисление функции в заданной точке X
{
return exp(1/sin(x)); //Сама функция
} //Конец программы
Результати виконання програми.
*****Программа табуляции функции Y на промежутке [a,b] с шагом h*****
Введите значение начала табуляции: а = 1
Введите значение конца табуляции: b = 6
Введите значение шага табуляции: h = 0.2
x = 1.600 y = 2.719
x = 1.800 y = 2.792
x = 2.000 y = 3.003
x = 2.200 y = 3.445
x = 2.400 y = 4.395
x = 2.600 y = 6.958
x = 2.800 y = 19.790
x = 3.000 y = 1195.346
x = 3.200 y = 0.000
x = 3.400 y = 0.020
x = 3.600 y = 0.104
x = 3.800 y = 0.195
x = 4.000 y = 0.267
x = 4.200 y = 0.317
x = 4.400 y = 0.350
x = 4.600 y = 0.366
x = 4.800 y = 0.366
x = 5.000 y = 0.352
x = 5.200 y = 0.322
x = 5.400 y = 0.274
x = 5.600 y = 0.205
x = 5.800 y = 0.116
x = 6.000 y = 0.028
Для выведения графика нажмите любую клавишу.
Графік для завдання №3
Блок-схема для завдання № 3
Завдання №4. Скласти блок-схему та програму розвязання задачі, згідно свого варіанту. Програма повинна передбачити можливість введення вхідних даних як з клавіатури, так і з файлу ZAD4.DAT. Результати роботи повинні виводитись як на екран, так і у файл ZAD4.REZ.
Вхідні данні, розміщені у текстовому файлі, мають такий формат:
спочатку в одному рядку через пропуск йдуть два числа M та N -розмірність матриці, якщо матриця прямокутна та одне число N - якщо матриця квадратна;
далі у M (N для квадратної матриці) рядках через пропуск йдуть N- чисел - дані відповідних комірок матриці;
якщо в умові є вказівки, то у вказаному форматі можуть бути зміни.
Вхідні дані повинні мати формат, передбачений умовою задачі.
№ варіантуУмова задачі13У квадратній матриці знайти кількість нульових елементів, для яких сума індексів парна.
Текст програми.
#include
#include
#include
#include
void main(){
int ar[20][20],i,j,a,e,l,m,sum;
div_t x;
clrscr();printf("\n Програма визначення нульових елементўв матрицў\n");
printf ("\n ввести матрицю з клавiатури(1) чи з файлу zad4.dat(2):");
scanf ("%d",&a);
if (a==1)
{printf("введтiь розмiрнiсть квадратноi матрицi:");
scanf("%d",&e);clrscr();
for (j=0;j<e;j++)
{for(i=0;i<e;i++)
{ printf("\n Введiть[%d][%d] елемент матрицi:",j+1,i+1);
scanf("%d",&ar[i][j]);clrscr();
}}}else {
FILE *fp;
fp=fopen("zad4.dat","r");
if (fopen("zad4.dat","r")==NULL)
{printf("\n не можу вiдкрити файл");
goto end;}else{
fscanf(fp,"%d",&e);
for (j=0;j<e;j++)
{for (i=0;i<e;i++)
{ fscanf(fp,"%d",&ar[i][j]);
}}fclose(fp);
}}
printf("\n Mатриця виглядить так:\n");
for (j=0;j<e;j++)
{ printf("\n ");
for(i=0;i<e;i++)
{printf("%d ",ar[i][j]);
}} j=0;i=0;sum=0;
for (j=0;j<e;j++){
for(i=0;i<e;i++)
{m=i+j;
x = div(m,2);
if(x.rem==0)
{if (ar[i][j]==0){sum++;}}}}
printf("\n нульових елементўв матрицў=%d",sum);
FILE *fp;
fp=fopen("zad4.res","w");
fprintf(fp,"\n нульових елементўв матрицў=%d",sum);fclose(fp);
printf("\n Результат у файлi zad4.res ");
end:
printf("\n press anykey ");
getch(); clrscr();}
Результат виконання.
Програма визначення нульових елементів матриці ввести матрицю з клавiатури(1) чи з файлу zad4.dat(2):2
Матриця виглядить так:
3 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
нульових елементів матриці=0
Результат у файлi zad4.res
press any key
Блок-схема
Такні
Список використаної літератури
1. Петров В.Н. Информационные системы. - СПб.: Питер, 2002.
2. Культин Н.Б. Программирование на Object Pascal в Delphi5. - Спб.: БХВ - Санкт - Петербург, 2000.
3. Жоголев Е.А. Введение в технологию программирования. - М.:"ДИАЛОГ МГУ", 1998.