Laboratorna_robota_14
.doc
Міністерство освіти і науки, молоді та спорту України
Вінницький національний технічний університет
Інститут автоматики, електроніки та комп’ютерних систем управління
Кафедра КСУ
Лабораторна робота №14
з дисципліни «Комп’ютерні технології та програмування»
Тема: «Розробка програм з інтегрованими типами даних (структури даних)»
Варіант №10
Виконав: ст. гр. 1АВ-12б
Кудлаєнко М.І.
Перевірив: к.т.н., доц. кафедри КСУ
Грищук Т.В.
Вінниця 2013
Лабораторна робота №14
Тема: Вивчення особливостей програмування на мові С з використанням методів структурного програмування.
Мета: Набуття навичок розробки програм з використанням функций на алгоритмічної мові С.
Порядок виконання роботи
-
Ознайомитись з теоретичними відомостями.
-
Розробити схему алгоритму та програму для обробки одномірного масиву , яка використовує функцію з завдання 1.
-
Розробити схему алгоритму та програму для обробки двомірного масиву , яка використовує функцію з завдання 2.
-
Скласти звіт за результатами лабораторної роботи
-
Зробити висновки.
Варіант 10.
Завдання 1
Розробити функцію визначення парного елемента і програму, що використовує цю функцію для визначення суми, кількості і середнього арифметичного всіх парних елементів масиву.
Завдання 2
Розробити функцію та програму, яка її використовує для перевірки, чи є заданий рядок паліндромом (таким, що читається в обох напрямках однаково), і тести, що підтверджують правильність роботи програми.
Хід роботи:
Завдання 1.
Пишемо програму:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void parni(int *A,const int n, int *PtrS, int *PtrK);
int main()
{
const int n=8;
int *A;
int i;
A=(int*)calloc(n, sizeof(int));
int *PtrS = new int(0);
int *PtrK = new int(0);
if(A==NULL)
{
exit(0);
}
for (i=0; i<n; i++)
{A[i]=rand()%10;}
for (i=0; i<n; i++)
{printf("[%d]", A[i]);}
parni(A, n, PtrS, PtrK);
float serar=float(*PtrS)/float(*PtrK);
printf("\nSuma = %d\n", *PtrS);
printf("K-st el-tiv = %d\n", *PtrK);
printf("Seredne znachennya = %.1f\n", serar);
delete PtrS, PtrK;
delete []A;
getch();
return 0;
}
void parni(int*A, const int n, int *PtrS, int *PtrK)
{
for (int i=0; i<n; i++)
{
if(A[i]%2==0 && A[i]!=0)
{
*PtrS+=A[i];
*PtrK+=1;
}
}
}
Результати роботи програми та тести представлені на рисунку 1:
Рисунок 1 – Тести до завдання 1
Завдання 2.
Пишемо програму:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int polindrom(char *A, const int n);
int main()
{ const int n=8;
char A[n];
int i;
printf("\n Vvedit' masyv: \n");
for(i=0;i<n;i++)
{scanf("%c",&A[i]);}
polindrom(A,n);
getch();
return 0;
}
int polindrom(char *A, const int n)
{
int i;
for(i=0; i<n/2; i++)
{
if(A[i]!=A[n-i-1])
{
printf("Ryadok ne polindromnuy");
return 0;
}
}
for(i=0; i<n/2; i++)
{
if(A[i]=A[n-i-1])
{
printf("Ryadok polindromnuy");
return 1;
}
}
}
Результати роботи програми та тести представлені на рисунку 2, 3, 4, 5:
Рисунок 2 – тести до завдання 2
Рисунок 3 – тести до завдання 2
Рисунок 4 – тести до завдання 2
Рисунок 5 – тести до завдання 2
Висновки: Виконавши лабораторну роботу я здобула навичок розробки програм з використанням функций на алгоритмічної мові С.