Рефераты. Алгоритмічні мови програмування: мова С

#include <stdio.h> /*об'явлення бiблiотечних функцiй для вводу-виводу*/

#include <graphics.h> /*виводу графiки*/

#include <math.h> /*математичних обчислень*/

#include <conio.h> /*зчитування символ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 <stdio.h>

#include <conio.h>

#include <math.h>

#include <stdlib.h>

void main(void)

{

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

clrscr();

printf("\nЗавдання №4: Кількість невід'ємних елементів в квадратній матриці\n");

printf ("\n Ввести значення Х з клавіатури(1) або з файлу zad4.dat(2):");

scanf ("%d",&a);

if (a==1)

{

printf("\n Введіть розмірність матриці:");

scanf("%d",&w);

for (j=0;j<w;j++)

{

for(i=0;i<w;i++)

{

clrscr();

printf("\n Введіть[%d][%d] елемент матриці:",j+1,i+1);

scanf("%d",&A[i][j]);

}

}

clrscr();

}

else

{

FILE *fp;

fp=fopen("zad4.dat","r");

if (fopen("zad4.dat","r")==NULL)

{

printf("\n Не можливо відкрити файл, бо його нема");

goto

end;

}

else

{

fscanf(fp,"%d",&w);

for (j=0;j<w;j++)

{

for(i=0;i<w;i++)

{

fscanf(fp,"%d",&A[i][j]);

}

}

fclose(fp);

}

}

printf("\n Mатриця має такий вигляд:\n");

for (j=0;j<w;j++)

{

printf("\n ");

for(i=0;i<w;i++)

{

printf("%d ",A[i][j]);

}

}

v=0;y=0;

for (j=0;j<w;j++)

{

for(i=0;i<v;i++)

{

if (A[i][j]>0)

{ y++;

}

else{;}

}v++;

if (w<v) goto ok;

}ok:

printf ("\n Елементів невід'ємних під головною діагоналлю:%d",y);

FILE *fp;

fp=fopen("zad4.res","w");

fprintf(fp,"\n Елементів невід'ємних під головною діагоналлю:%d",y);

fclose(fp);

printf("\n Результат в файлі zad4.res ");

end: printf("\nНатисніть будь-яку клавішу для завершення \n ");

getch();

clrscr();}

Результат виконання

Завдання №4: Кількість невід'ємних елементів в квадратній матриці

Ввести значення Х з клавіатури(1) або з файлу zad4.dat(2):2

Mатриця має такий вигляд:

3 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

Елементів невід'ємних під головною діагоналлю:6

Результат в файлі zad4.res

Натисніть будь-яку клавішу для завершення

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

такні

Література

Герберд Шилдт "Си для профессиональных программистов"

Ал. Стивенс "Техника програмирования на Турбо Си"

Шолмов Л.И. "Техника програмирования на Си"

Б.В. Керниган, Д.М. Ричи. "Язык Си"

Мюррэй Хилл, Нью Джерси Бьярн Страустрап "C++"

Громов, Титаренко "Программирование на Си"

Марченко А.Л C++. Бархатный путь

С.С. Гайсарян Объектно-ориентированные технологии проектирования прикладных программных систем

Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.