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

10137
знаков
7
таблиц
10
изображений

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

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


Студентка групи Пзс-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); //Считать число знаков 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

Блок-схема: данные: Ввести&#13;&#10; &#13;&#10;



Завдання №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; //показатель на структуру типа 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; //Завершение работы программы

}

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

Введите значение Х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 Результат у файл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


Блок-схема

Блок-схема: решение: Вводити вхідні данні з клавіатури
 

Так ні

Блок-схема: данные: зчитування&#13;&#10;матриці &#13;&#10;з файлу zad4.dat&#13;&#10;


Список використаної літератури

1. Петров В.Н. Информационные системы. – СПб.: Питер, 2002.

2. Культин Н.Б. Программирование на Object Pascal в Delphi5. – Спб.: БХВ – Санкт – Петербург, 2000.

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


Информация о работе «Алгоритмічні мови програмування»
Раздел: Информатика, программирование
Количество знаков с пробелами: 10137
Количество таблиц: 7
Количество изображений: 10

Похожие работы

Скачать
12242
10
11

ідно свого варіанту. Програма повинна передбачити можливість введення вхідних даних як з клавіатури, так і з файлу ZAD4.DAT. Результати роботи повинні виводитись як на екран, так і у файл ZAD4.REZ. Вхідні данні, розміщені у текстовому файлі, мають такий формат: ·        спочатку в одному рядку через пропуск йдуть два числа M та N –розмірність матриці, якщо матриця прямокутна та одне число N – ...

Скачать
206879
0
16

... . Механізм переривань забезпечує ефективна взаємодія пристроїв уведення-висновку з мікропроцесором. Переривання цікавлять нас тому, що обробка переривань - це прерогатива програмування на мові асемблера. У високорівневих мовах відсутні засоби роботи з перериваннями на машинному рівні. Переривання звичайно викликаються зовнішніми пристроями. Переривання сигналізує мікропроцесору, щоб він призупинив ...

Скачать
13799
4
12

... ї функції в залежності від значень вхідних даних згідно номера варіанта відповідного розділу „Методичних вказівок до виконання лабораторних робіт на тему “Програмування мовою VBA” із дисципліни “Інформатика”. 4) Розробка алгоритму та програми табуляції функції однієї змінної з використанням ітераційного циклу при розрахунку значень заданої функції згідно номера варіанта відповідного розділу „ ...

Скачать
21927
1
4

... , що використовується, прагнути включати в рядок до 10 слів; • прагнути не поміщати більш одного-двох параграфів тексту на один екран. 1.4 Розробка цифрового освітнього ресурсу: «Задачник по мові програмування. Циклічні алгоритми» Назва розробки: електронний навчальний посібник з язика програмування. (Додаток 1) Тип розробки: електронний навчальний посібник. Предмет: інформатика; тема: « ...

0 комментариев


Наверх