2.1.2 Програма та програмна реалізація

Дане завдання реалізоване у модулі TASK1.CPP (TASK1.EXE)

Для опису даної програми була введена структура (struct Tbook) та заданий масив (char name[20]) для зберігання даних даного типу. Реалізація програми здійснюється за допомогою файлів “Task_in” та “Task_out”. Зчитування проводиться стандартною функцією scanf згідно визначеного формату даних вхідного файлу «Task_in». Під час роботи програма визначає продукт з найбільшим вмістом білка. Результатом виконання є вивід інформації про продукт та її запис у вихідний файл «Task_out». Тіло програми повністю побудоване згідно алгоритму(додаток 7). Розглянемо програму:

// Програма Task1.cpp

#include <conio.h>

#include <process.h>

#include <fstream.h>

#include <stdio.h>

#include <dos.h>

#include <math.h>

struct Tbook

{

char name[20];

int index;

float price;

};

Tbook shelf[15];

FILE *taskin, *taskout;

void TASK1() {

clrscr();

printf("Chytania fajlu 'task.in'\n\n");

if((taskin = fopen("task.in", "rt")) == NULL)

{

perror("ERROR\n");

getch();

exit(errno); };

int i = 0;

sqrt;

while(i < 16)

{

if(fscanf(taskin,"%2i %11s %f\n",

&shelf[i].index,

shelf[i].name,

&shelf[i].price

) == EOF) break;

printf("%2i %11s %2.0f\n",

shelf[i].index,

shelf[i].name,

shelf[i].price);

i++; };

fclose(taskin);

printf("\n...zavershene!");

float max=shelf[0].price;

int ind=0;

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

{

if (shelf[i].price>=max){max=shelf[i].price; ind=i;}

};

printf("\n\nMaksymalnyj vmist bilka mae \"%s\" - %2.0f\n",shelf[ind].name,shelf[ind].price);

printf("\n\nZapys u fajl 'task.out'");


taskout = fopen("task.out", "w+");

fprintf(taskout, "%2i %11s %2.0f",

shelf[ind].index,

shelf[ind].name,

shelf[ind].price);

fclose(taskout);

printf("...zavershenyj!");

getch();

};

 

2.1.3 Тестування завдання

Для проведення тестування потрібно першочергово заповнити файл Task_in (з операційної системи). Даний файл було заповннено наступними значеннями(рис. 2.131). Після цього програму потрібно запустити. Результат виконання, а саме інформацію про продукт з найбільшим вмістом білка можна записаний у вихідному файлі Task_out(рис. 2.132).

 

 

 

Рис. 2.131 Task_in Рис. 2.132 Task_out


2.2 Завдання 2 Фукція

 

2.2.1 Постановка завдання

Знайти величину і номер першого негативного і останнього позитивного елементів у масиві дійсного типу заданого розміру.

2.2.2 Програма та програмна реалізація

Дане завдання реалізоване у модулі TASK2.CPP (TASK2.EXE)

У підпрограмі оголошено масив(float a[100]), змінна n-відповідає кількості елементів у масиві, також є дві функції (int pos, int neg) – одана шукає намер першого негативного елементу масиву, інша номер останнього позитивного елементу масиву. Тіло програми повністю побудоване згідно алгоритму(додаток 8). Розглянемо програму:

// Task2.cpp

#include <iostream.h>

#include <conio.h>

//--------------------

int pos(float *a, int n)

{ int i=n-1;

while (a[i]<0)

i--;

return i;

}

//----------------------

int neg(float *a, int n)

{

int i=0;

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

if (a[i]<0) break;

return i;

}

//-------------------------

void TASK2()

{

clrscr();

int i,n;

int k1;

int k2;

float a[100];

cout<<"Vvedit velychynu masyvu:";

cin>>n;

if (n>1)

{

for (i=0; i<=n-1; i++ )

{

cout<<"Vvedit znachenia Masyv["<<i<<"]:";

cin>>a[i];

k1=pos(a,n);

k2=neg(a,n);

}

}

cout<<"\n\n";

cout<<"Pershyj negatyvnyj element maje nomer "<<k2+1<<",a jogo vmist: "<<a[k2]<<endl;

cout<<"Ostannij pozytyvnyj element maje nomer "<<k1+1<<",a jogo vmist: "<<a[k1];

getch();

}


2.2.3 Тестування завдання

Для перевірки даної підпрограми мною були введені дані про кількість елементів у масиві та власне сам масив. В результаті був отриманий результат - номер та власне саме значення першого негативного та останнього позитивного елементів у масиві(рис. 2.321).

Рис. 2.321 Тестовий приклад Task2.срр

2.3 Завдання 3 Масиви

2.3.1 Постановка завдання

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

 


Информация о работе «Розробка програм мовою С++»
Раздел: Информатика, программирование
Количество знаков с пробелами: 42425
Количество таблиц: 0
Количество изображений: 17

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

Скачать
29682
0
0

... системах наукової класифікації. Однак перш ніж зануритися в об’єктно-орієнтовану розробку, давайте розглянемо деякі з властивостей, загальні для класу "об'єктів". Абстракція Ціль об'єктно-орієнтованого програмування полягає в тому, щоб побачити в задачі абстракції об'єктів реального світу. Що за реальні об'єкти малися на увазі? Буквально будь-які, аби вони давали представлення про функці ...

Скачать
27398
0
2

... процесором, тільки коли він працює в приміщенням режимі. Метою виконання даної курсової роботи є отримання практичних навичок роботи програмування мовою асемблера. Підсумком виконання курсової роботи є розробка алгоритму контролю на парність масиву даних, що зберігається в деякій області пам'яті і програми на мові асемблера, який реалізує даний алгоритм. 1. Загальний розділ Надійність ...

Скачать
13575
0
8

... x запишеться у вигляді наступної функції цей запис представляє собою приклад програми на мові Lisp. В даному курсовому проекті на мови Lisp розроблено програму Sierpins, яка реалізує побудову рекурсивних кривих Серінського. На початку програми встановлюється значення змінної *VMode*‚ яка керує установкою відео режиму, і за замовчуванням встановлена в значення 18. Ця установка відповідає ...

Скачать
28806
1
17

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

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


Наверх