Алгоритмічні мови програмування: мова С

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

° с клавиатуры*/

fclose(infile); /*закрытие файла input.txt*/

return 0; /*завершение роботы программы*/

}

float F (float x) /*определение функции вычисления полинома*/

{

return ((((x-2.22)*x+3.33)*x-4.44)*x+5.55)*x-6.66;

}

 

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

 

***Программа вычисления значения функции полинома в заданной точке X***

Сколько знаков после запятой выводить на экран? 6

Ввести значение Х:

1) из файла;

2) с клавиатуры?

Значение полинома в точке X1=0.111 равно: -6.094421

Значение полинома в точке X2=-0.999 равно: -23.161737

Нажмите любую клавишу.

Блок-схема№2 до завдання№2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Завдання №3. Скласти блок-схему та програму табулювання функції на проміжку [a, b] з заданим кроком h з використанням циклу з після умовою. Програма, крім того, повинна побудувати графік функції на вказаному проміжку з побудовою всіх точок, обчислених при табулюванні.

 

№ варіантуФункціяabh2010.25

Відповідь №3

Текст програми.

 

#include /*обявлення бiблiотечних функцiй для вводу-виводу*/

#include /*виводу графiки*/

#include /*математичних обчислень*/

#include /*зчитування символiв з клавiатури*/

float F (float x); /*обявлення функцii обчислення Y*/

int main() /*початок програми*/

{

float a,b,h,y,max,i; /*опис типiв змiнних*/

int g; /*помилка графiки*/

int g_driver, g_mode; /*графiчний драйвер та режим*/

int q, w,j; /*ширина та висота графiка*/

char m[5];

printf("Програма табулювання функцii Y на промiжку [a,b] з кроком h\n");

printf("\nВведiть значення початку промiжку табуляцii: а = ");

scanf("%f", &a);

printf("\nВведiть значення кiнця промiжку табуляцii: b = ");

scanf("%f", &b);

printf("\nВведiть значення кроку табуляцii: h = ");

scanf("%f", &h);

a=a+0.000000000000000001; /*вводимо значення вiдмiнне вiд нуля*/

i=a;

max=0;

do

{

y=F(i); /*табуляцiя Y*/

if (fabs(y)>max) max=fabs(y);

printf("\nx = %.3f\t y = %.3f", i, y); /*виведення значень У на екран*/

i=i+h;

}

while (i <= b);

printf("\n\nДля виведення графiка функцii натиснiть будь-яку клавiшу...");

getch();

detectgraph(&g_driver, &g_mode); /*визначення графiчного адаптеру та графiчного режиму*/

initgraph(&g_driver, &g_mode, ""); /*iнiцiалiзацiя графiчноi системи*/

if ((g = graphresult()) != grOk)

printf("\nПомилка графiки : %s\n", grapherrormsg(g)); /*видача повiдомлення в разi помилки вiдкриття файлу */

cleardevice(); /* очистка екрану */

q=getmaxx();

w=getmaxy(); /* визначення максимальних значень X та Y*/

setbkcolor(0); /*встановлення кольору фону - чорний*/

setcolor(15); /* встановлення поточного кольору малювання - бiлий*/

setlinestyle(0,0,2); /* встановлення стилю лiнiй: тип -суцiльна, товщина=2*/

line(0,w/2,q,w/2); /*побудова координатних вiсей*/

line(q,w/2,q-10,w/2-10);

line(q,w/2,q-10,w/2+10);

line(q/2,0,q/2,w);

line(q/2,0,q/2-10,10);

line(q/2,0,q/2+10,10);

i=a;

j=0;

settextstyle(2,0,0);

setusercharsize(1, 1, 3, 2);

do

{

y=F(i);

setcolor(15);

setlinestyle(1,0,3);

circle(j*q*h/(b-a),(w/2-y*w/(2*max)),2); /*виведення точок табуляцii*/

sprintf(m, "%.2f", i);

outtextxy(j*q*h/(b-a),w/2,m); /*значення на вiсi Х*/

setcolor(15);

setlinestyle(0,0,2);

line(j*q*h/(b-a), w/2-3,j*q*h/(b-a), w/2+3); /*розмiтка вiсi Х*/

j=j+1;

i=i+h;

}

while (i <= b);

for (i=a,j=0; i<=b;j++, i=i+(b-a)/q) /*виведення усiх точок графiку на промiжку [a,b]*/

putpixel(j,(w/2-F(i)*w/(2*max)),14);

getch(); /*зчитування символу з клавiатури*/

closegraph(); /*закриття графiчноi системи*/

return 0; /*нормальне завершення роботи програми*/

}

float F (float x) /*обчислення значення заданоi функцii в точцi X*/

{

return sin(x)/x;

}

 

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

 

Програма табулювання функцii Y на промiжку [a,b] з кроком h

Введiть значення початку промiжку табуляцii: а = 0

Введiть значення кiнця промiжку табуляцii: b = 1

Введiть значення кроку табуляцii: h = 0.25

 

x = 0.000 y = 1.000

x = 0.250 y = 0.990

x = 0.500 y = 0.959

x = 0.750 y = 0.909

 

.Для виведення графіка функції натисніть будь-яку клавішу

 

Графік для завдання №3.

 

 

Блок-схема№3 до завдання№3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Завдання №4. Скласти блок-схему та програму розвязання задачі, згідно свого варіанту. Програма повинна передбачити можливість введення вхідних даних як з клавіатури, так і з файлу ZAD4.DAT. Результати роботи повинні виводитись як на екран, так і у файл ZAD4.REZ

Вхідні данні, розміщені у текстовому файлі, мають такий формат:

спочатку в одному рядку через пропуск йдуть два числа M та N -розмірність матриці, якщо матриця прямокутна та одне число N - якщо матриця квадратна;

далі у M (N для квадратної матриці) рядках через пропуск йдуть N- чисел - дані відповідних комірок матриці;

якщо в умові є вказівки, то у вказаному форматі можуть бути зміни.

Вхідні дані повинні мати формат, передбачений умовою задачі.

 

№ варіантуУмова задачі2У квадратній матриці підрахувати кількість невідємних елементів під головною діагоналлю.

Відповідь №4

 

Текст програми.

 

#include

#include

#include

#include

void main(void)

{

int A[20][20],i,j,a,y,w,x,v;

clrscr();

printf("\nЗавдання №4: Кі