на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Розробка програм мовою С++
p align="left">// Програма 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 Постановка завдання

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

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

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

На початку програми оголошений масив р[10][10]. Оголошений лічильник k - який підраховує кількість локальних мінімумві у матрицці. Під час запуску підпрограма запитує користувача розмірності матриці n. Після цього вона заповняється елементами. Наступним етапом є опрацювання матриці оператором for. Після опрацювання виводиться повідомлення про кількість локальних мінімумів k та інфориація про кожного з них. Програма побудована згідно алгоритму:

void TASK3()

Розглянемо програму:

//Task3.cpp

#include <iostream.h>

#include <conio.h>

void TASK3(){

clrscr();

int i,j,n,k,k1;

k=0;

int p[10][10];

cout<<"Vvedit znachenia n:"<<"\n";

cin>>n;

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

for (j=0; j<=n-1; j++){

cout<<"Vvedit znachenia p["<<i<<"]["<<j<<"]: ";

cin>>p[i][j];}

}

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

for (j=0; j<=n-1; j++){

k1=0;

if ((i==0) || (p[i-1][j]>p[i][j])) k1++;

if ((i==n-1) || (p[i+1][j]>p[i][j])) k1++;

if ((j==0) || (p[i][j-1]>p[i][j])) k1++;

if ((i==n-1) || (p[i][j+1]>p[i][j])) k1++;

if (k1==4){k++; cout<<"Inform pro lokalnuy minimymiv"<<endl; cout<<"p["<<i<<"]["<<j<<"]="<<p[i][j]<<endl;

}

cout<<endl;}

cout<<"Kilkist lokalnux minimymiv\n"<<k;

getch();

}

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

Для тесту були введені наступні значення(рис. 2.331). В результаті був отриманий наступний результат:

Рис. 3.31 Тестовий приклад Task3.cpp

2.4 Завдання 4 Операції над лінійним списком. Робота з динамічною пам'яттю

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

Визначено наступний покажчик на початок лінійного списку:

struct Node // NODE: вузол лінійного списку

{

Node *pLink; // Pointer LINK:

// Покажчик на черговий вузол

float Info // INFOrmation: інформація

} *Start;

Написати прототип, визначення і приклад виклику функції для видалення зі списку k останніх елементів із звільненням зайнятої ними пам'яті. В окркмому випадку, перед викликом цієї функції лінійний список може бути порожній або може містити будь-яку кількість елементів.

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

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

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

Опишемо алгоритм роботи даної програми:

Створено список (Node *pLink;),у якому оголошено наступні функції:

void func(Node *Start); // Відповідає за видалення

елементів зі списку

void vvid(); // Вводимо елементи списку

(кінцевий елемент - 0)

void vuvid(Node *Start); // Виводить результат, без останніх

k- елементів

void clear(Node *Start); // Звільняє займану ними пам'ять

Розглянемо програму:

// Task4.cpp

#include <iostream.h>

#include <conio.h>

struct Node

{

Node *pLink;

float Info;

} *Start, *Cur, *New, *Prev;

int n=0;

void func(Node *Start);

void vvid();

void vuvid(Node *Start);

void clear(Node *Start);

char Empty;

void TASK4()

{

clrscr();

vvid();

vuvid(Start);

func(Start);

vuvid(Start);

clear(Start);

getch();

}

void vvid()

{

cout << "Vvedit elementu spusky (kintsevuj element - 0):\n";

Cur = new Node;

Start = Cur;

do

{

Prev = Cur;

cin >> Cur->Info;

Cur->pLink = new Node;

Cur = Cur->pLink;

n++;

} while(Prev->Info != 0);

Prev->pLink = NULL;

delete Cur;

n--;

Cur = Start;

while(Cur->pLink != NULL)

{

Prev=Cur;

Cur=Cur->pLink;

}

if(Start==Cur) Start = NULL;

else

{

Prev->pLink=NULL;

delete Cur;

}

}

void vuvid(Node *Start)

{

if(Start != NULL)

{

cout << "\n\nVvedenuj spusok:\n";

Cur = Start;

while(Cur != NULL)

{

cout << Cur->Info << " ";

Cur = Cur->pLink;

}

cout << "\n\n";

}

Else {

cout << "\nVu ne vvelu spusok";

Empty ='y'; }

}

void func(Node *Start) {

if(Start != NULL)

{ int k;

Cur=Start;

cout << "Vvedit kilkist elementiv do vudalennja: ";

cin >> k;

if(k<n) {

for(int i=0; i<(n-k); i++)

{ Prev=Cur;

Cur=Cur->pLink;

}

Prev->pLink=NULL;

while(Cur!=NULL)

{

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.