В ходе выполнения работы изучил правила составления и написания функций и интерфейса функционального модуля.

Министерство образования Российской Федерации

Пензенский государственный университет

Кафедра «Вычислительная техника»

 

ОТЧЕТ

по лабораторной работе №8

по курсу «Программирование»

на тему «ФУНКЦИИ»

 

 

Выполнил:

студенты группы 20ВВ1

DD

 

Принял:

к.т.н., доцент Юрова О.В.

 

 

Пенза 2020

Цель работы:

Изучение правил составления и написания функций и интерфейса функционального модуля.

 

Лабораторное задание

Лабораторная работа 8 выполняется на основе заданий к лабораторной работе 6.

1. (Вариант №2)

а) Задан массив А(20). Вывести на экран сначала его неотрицательные элементы, затем отрицательные.

б) Вычислить среднее арифметическое элементов каждого столбца матрицы М(10,10).

2. Составить программу, которая выполняет следующие действия:

а) ввод исходных массивов;

б) вывод исходных массивов;

в) обработку массивов в соответствии с заданием;

г) вывод результатов с соответствующими комментариями.

Пункты а), б), в), г) оформить в виде функций. Глобальные данные в программе не использовать.

3. Выполнить программу и оценить правильность ее работы.

 


Листинг программы .

#define _CRT_SECURE_NO_WARNINGS

#define _CRT_NONSTDC_NO_WARNINGS

 

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <stdlib.h>

#include <locale.h>

#include <time.h>

 

void InputA(int* ppA);

void printA(int* ppA);

void vivodA1(int* ppA);

void vivodA2(int* ppA);

 

void InputB(int MM[10][10]);

void printM(int MM[10][10]);

double suMM(int pMM[10][10], int k);

void vivodM(int MM[10][10]);

 

void main()

{

setlocale(0, "");

//Задание а

int A[20];

int* pA = A;

 

InputA(&A[0]);

printf("Исходный массив: \n");

printA(&A[0]);

printf("\n\nПреобразованный массив: \n");

vivodA1(A);

vivodA2(A);

printf("\n\n");

 

//Задание б

int M[10][10];

int sum = 0;

 

InputB(M);

printf("Исходная матрица: \n");

printM(M);

printf("Суммы по столбцам: \n");

vivodM(M);

 

getchar();

}

void InputA(int* ppA)

{

srand(time(NULL));

for (int i = 0; i < 20; i++)

{

     *ppA = rand() % 20 - 10;

     ppA++;

}

}

 

void printA(int* ppA)

{

for (int i = 0; i < 20; i++)

{

     printf("%4d", *ppA);

     ppA++;

}

}

 

 

void vivodA1(int* ppA)

{

for (int i = 0; i < 20; i++)

{

     if (*ppA >= 0)

          printf("%4d", *ppA);

     ppA++;

}

}

void vivodA2(int* ppA)

{

for (int i = 0; i < 20; i++)

{

     if (*ppA < 0)

          printf("%4d", *ppA);

     ppA++;

}

}

 

 

void InputB(int MM[10][10])

{

for (int i = 0; i < 10; i++) {

     for (int j = 0; j < 10; j++) {

          *(*(MM + i) + j) = rand() % 20 - 10;

          //MM[i][j] = rand() % 20 - 10;

     }

}

}

 

void printM(int MM[10][10])

{

for (int i = 0; i < 10; i++) {

     for (int j = 0; j < 10; j++) {

          printf("%6d", *(*(MM + i) + j));

     }

     printf("\n");

}

}

 

double suMM(int pMM[10][10], int k)

{

double sum;

sum = 0;

for (int i = 0; i < 10; i++) {

         

     //printf("%4d", sum);

}

return (sum / 10);

}

 

void vivodM(int MM[10][10])

{

for (int j = 0; j < 10; j++) {

     printf("%6.1lf", suMM(MM, j));

}

}


Схема программы

 

Рисунок 1 –                                  Рисунок 2 –                                  Рисунок 3 –

Схема функции main()             Схема функции InputA()     Схема функции printA()

 

Рисунок 4 –                                                Рисунок 5 –

Схема функции vivodA1()                        Схема функции vivodA2()

Рисунок 6 –                                         Рисунок 7 –

Схема функции InputB()               Схема функции printM()

 

Рисунок 8 –                                         Рисунок 9 –

Схема функции vivodM()              Схема функции suMM()

 

Результаты работы программы

Результаты работы программы показаны на рисунке 10.

 

Рисунок 10 – Результат работы программы.

 

На рисунках 11, 12, 13 показан протокол трассировки.


Рисунок 11 - Протокол трассировки.

Рисунок 12 - Протокол трассировки.

Рисунок 13 - Протокол трассировки.

Вывод:

В ходе выполнения работы изучил правила составления и написания функций и интерфейса функционального модуля.


Дата добавления: 2021-01-20; просмотров: 205; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!