|
Алгоритмічні мови програмування
Алгоритмічні мови програмування
Контрольна робота з теми: “Алгоритмічні мови програмування” Студентка групи Пзс-402 Казюка ОленаЗавдання №1. Скласти блок схему та програму обчислення значення функції y=f(x) у точці x0 з точністю . Вхідні дані x0та a містяться у самій програмі, точність вводиться з клавіатури.|
№ варіанту | F (x) | X0 | 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); //Считать число знаков epsilony=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)*********Сколько знаков после запятой вывести на экран 61.357433Нажмите любую клавишуБлок-схема№1 до завдання №1Завдання №2. Використовуючи схему Горнера обчислити два значення поліному. Скласти блок-схему та програму. У програмі передбачити можливість введення вхідних даних як з клавіатури, так і з файлу INPUT.TXT, що міститься в поточній директорії, та використання функцій або процедур користувача.|
№ варіанту | Поліном | Значення x | | 13 | | x1=0,321; x2=-0,889 | | | Текст програми.//Программа вычисления значения полинома#include <stdio.h> //подключение библиотек#include <conio.h> //библиотека считывания значений с клавиатурыfloat y (float x); //объявление функцииint main(void){float x1,x2,y1,y2; //описание переменныхint a,b;FILE *infile; //показатель на структуру типа FILEprintf("\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.txtelse{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.txtreturn 0; //Завершение работы программы}float y (float x) //обозначение функции вычисления полинома{return ((((2.4*x+4.6)*x+6.8)*x+8.0)*x+0.2)*x+2.4;//сама функция (полином)}Результати виконання програми.*****Программа вычисления значения полинома*****Сколько знаков после запятой вывести на экран? 6Ввести значение Х:1) из файла2) с клавиатуры2Введите значение Х10.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); //Объявление функции Yint 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); //табуляция Yif (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 и Ysetbkcolor(0); //Установка цвета фонаsetcolor(14); // Установка текущего цвета рисованияsetlinestyle(0,0,2); // Установка стиля линий: тип - сплошная, толщина=2line(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.2x = 1.600 y = 2.719x = 1.800 y = 2.792x = 2.000 y = 3.003x = 2.200 y = 3.445x = 2.400 y = 4.395x = 2.600 y = 6.958x = 2.800 y = 19.790x = 3.000 y = 1195.346x = 3.200 y = 0.000x = 3.400 y = 0.020x = 3.600 y = 0.104x = 3.800 y = 0.195x = 4.000 y = 0.267x = 4.200 y = 0.317x = 4.400 y = 0.350x = 4.600 y = 0.366x = 4.800 y = 0.366x = 5.000 y = 0.352x = 5.200 y = 0.322x = 5.400 y = 0.274x = 5.600 y = 0.205x = 5.800 y = 0.116x = 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 Результат у файл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.
|
|