Контрольная работа по предмету "Информатика, программирование"


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

Контрольна робота з теми:


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


Студентка групи Пзс-402


Казюка Олена



Завдання №1.
Скласти блок схему та програму обчислення значення функції y
=
f
(
x
)
у точціx
0

з точністю.

Вхідні дані x
0

таa
містяться у самій програмі, точність вводиться з клавіатури.














№ варіанту F
(
x
)
X
0

A
13 0.4652 0.000001

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


//Программа вычисления значения функции


#include<iostream.h> //Открытие библиотек


#include<conio.h>


#include<stdio.h>


#include <math.h>


const double PI=3.1415926; //Вводконстанты


main()


{


cout<<"\n"<<"**********Программа вычисления значения функции F(x)*********";


float x,a,y; //Описание переменных


int epsilon;


x=0.4652; //Описание переменных первого порядка


a=PI/6;


cout<<"\n"<<" Сколько знаков после запятой вывести на экран ";


scanf("%d",&epsilon); //Считать число знаков epsilon


y=1-(cos(x-a))/(sqrt(a+(cos(x+a)/sin(x+a))))+exp(a*x); //функция, значение которой надо найти


printf("%.*f\n",epsilon,y);


cout<<"\n"<<" Нажмите любую клавишу";


getch(); //Считать символ с клавиатуры


return 0;


}


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


**********Программа вычисления значения функции F(x)*********


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


1.357433


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


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













Завдання

2.
Використовуючи схему Горнера обчислити два значення поліному. Скласти блок-схему та програму. У програмі передбачити можливість введення вхідних даних як з клавіатури, так і з файлу INPUT.TXT, що міститься в поточній директорії, та використання функцій або процедур користувача.










№ варіанту Поліном Значення x
13 x1
=

0,321; x2
=

-0,889

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


//Программа вычисления значения полинома


#include <stdio.h> //подключение библиотек


#include <conio.h> //библиотека считывания значений с клавиатуры


floaty (floatx); //объявление функции


intmain(void)


{


floatx1,x2,y1,y2; //описание переменных


inta,b;


FILE *infile; //показатель на структуру типа FILE


printf("\n*****Программа вычисления значения полинома*****");


printf("\nСколько знаков после запятой вывести на экран? ");


scanf("%d", &a); //Считывается с клавиатуры точность выведения


printf("\nВвести значение Х: \n 1) из файла");


printf("\n 2) с клавиатуры\n");


scanf("%d", &b); //считывание с клавиатуры начальных данных


if (b == 1) //указание на то, что b равно 1


{


if ((infile = fopen("input.txt", "rt"))== NULL)


{ //открыли файл для чтения


fprintf(stderr, "Нельзя открыть файл.\n");//Выдаёт сообщение при ошибке


return 1;


} //открытие файла


fscanf (infile, "%f",&x1);


fscanf (infile, "%f",&x2);


} //считывание значений х1 и х2 из файла input.txt


else


{


printf("Введите значение Х1\n"); //считывание значений х1 и х2 с клавиатуры


scanf("%f", &x1);


printf("Введите значение Х2\n");


scanf("%f", &x2);


};


y1 = y(x1);


y2 = y(x2);


printf("\nЗначение полинома в точке X1=", x1);


printf("%.*f\n",a, y1);


printf("Значение полинома в точке X2=", x2);


printf("%.*f\n",a, y2);


printf("\nНажмите любую клавишу на клавиатуре");


getch(); //читается символ с клавиатуры


fclose(infile); //Закрывается файл input.txt


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


}


floaty (floatx) //обозначение функции вычисления полинома


{


return ((((2.4*x+4.6)*x+6.8)*x+8.0)*x+0.2)*x+2.4;//сама функция (полином)


}


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


*****Программа вычисления значения полинома*****


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


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


1) из файла


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


2


Введите значение Х1


0.321


Введите значение Х2


-0.889


Значение полинома в точке X1=3.570466


Значение полинома в точке X2=5.307651

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



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






Завдання

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














№ варіанту Функція a
b
h
13 1 6 0.2


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


// Программа табуляции функции на


// промежутке с заданным шагом и построением графика


#include <stdio.h> //Открытие библиотечных функций


#include <graphics.h> //Функция подключения графики


#include <math.h> //Функция подключения математических вычислений


#include <conio.h> //Чтение символов с клавиатуры


float F (float x); //Объявление функции Y


int main()


{


float a,b,h,y,max,i; //Описание переменных


int gerr; //Ошибка графики


int g_driver, g_mode; //Графический драйвнр и режим


int XMAX, YMAX,j; //Ширина и высота графика


char msg[5];


printf("*****Программа табуляции функции Y на промежутке [a,b] с шагом h*****\n");


printf("\nВведите значение начала табуляции: а = ");


scanf("%f", &a);


printf("\nВведите значение конца табуляции: b = ");


scanf("%f", &b);


printf("\nВведите значение шага табуляции: h = ");


scanf("%f", &h);


i=a; max=0;


do


{


y=F(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Для выведения графика нажмите любую клавишу");


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 <stdio.h>


#include <conio.h>


#include <math.h>


#include <stdlib.h>


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Результат у файлizad4.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. Культин Н.Б. Программирование наObjectPascalвDelphi5. – Спб.: БХВ – Санкт – Петербург, 2000.


3. Жоголев Е.А. Введение в технологию программирования. - М.:"ДИАЛОГ МГУ", 1998.



Не сдавайте скачаную работу преподавателю!
Данную контрольную работу Вы можете использовать для выполнения своих заданий.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :