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 Постановка завдання
Елемент матриці називають локальним мінімумом, якщо його значення строго менше значень всіх наявних сусідів. Підрахувти кількість локальних мінімумів заданої матриці і надрукува інформацію про кожного з них.
... системах наукової класифікації. Однак перш ніж зануритися в об’єктно-орієнтовану розробку, давайте розглянемо деякі з властивостей, загальні для класу "об'єктів". Абстракція Ціль об'єктно-орієнтованого програмування полягає в тому, щоб побачити в задачі абстракції об'єктів реального світу. Що за реальні об'єкти малися на увазі? Буквально будь-які, аби вони давали представлення про функці ...
... процесором, тільки коли він працює в приміщенням режимі. Метою виконання даної курсової роботи є отримання практичних навичок роботи програмування мовою асемблера. Підсумком виконання курсової роботи є розробка алгоритму контролю на парність масиву даних, що зберігається в деякій області пам'яті і програми на мові асемблера, який реалізує даний алгоритм. 1. Загальний розділ Надійність ...
... x запишеться у вигляді наступної функції цей запис представляє собою приклад програми на мові Lisp. В даному курсовому проекті на мови Lisp розроблено програму Sierpins, яка реалізує побудову рекурсивних кривих Серінського. На початку програми встановлюється значення змінної *VMode*‚ яка керує установкою відео режиму, і за замовчуванням встановлена в значення 18. Ця установка відповідає ...
... сть у користуванні та невеликі розміри виконавчого файлу.. Створена нами програма проста та інтуїтивно зрозуміла і легка у користуванні. У пояснювальній записці вповні розглянута проблема пошуку коренів нелінійних рівнянь, наведені необхідні формули та теореми. Крім того, побудовані блок-схеми алгоритмів основних функцій відповідають діючим стандартам і вимогам. Отже, можемо зробити висновок, ...
0 комментариев