Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ СИ. Лабораторный практикум доцента кафедры «Системы управления и компьютерные технологии» Пановой Т.В..doc
Скачиваний:
106
Добавлен:
26.03.2015
Размер:
585.22 Кб
Скачать

Лабораторная работа № 3

Тема

Функции

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

I. Теоретические сведения.

См. лекции по курсу «Программирование на языке высокого уровня».

II. Контрольные вопросы.

  1. Что такое вспомогательный алгоритм?

  2. Чем реализуется вспомогательный алгорим в программировании?

  3. Что такое подпрограмма, чем она представляется в языке Си?

  4. Что включает в себя определение функции?

  5. Почему необходим оператор возврата из функции?

  6. Что происходит при определении переменной или функции?

  7. Что означает обращение к функции?

  8. Когда используются формальные и фактические параметры?

  9. Что представляет собой результат функции?

  10. Назвать способы передачи параметров в функцию.

  11. Что означает передача параметров в функцию по значению?

  12. В чем различие между передачей параметров в функцию по адресу или ссылке от стандартного способа передачи параметров?

  13. Что такое ссылка?

  14. Какое местоположение может занимать функция в программе и вне ее?

  15. Чем является объявление функции, и когда оно используется?

  16. Чем отличается объявление прототипа функции от обычного объявления?

  17. Какими способами может быть указано имя подключаемого файла?

III. Практическая часть.

1. Выполнение общего задания.

Разобрать задачи.

Задача 1

1. Постановка задачи: ввести двумерный массив размерностью n на m, создать одномерный массив из m элементов, значение которых равно сумме значений элементов каждого столбца данного двумерного массива, вывести полученный массив.

2. Описание подхода к решению задачи.

В поставленной задаче можно выделить три подзадачи: ввод и вывод элементов двумерного массива и формирование одномерного массива. Подзадачи оформляются в виде функций, которые вызываются из главной функции.

M[n][m] – двумерный массив, содержащий n строк и m столбцов; A[m] одномерный массив из m элементов; p2, p1 – указатели на двумерный и одномерный массив соответственно.

3. Блок-схемы алгоритмов функций:

Блок-схема главной функции

Блок-схема функции ввода массива – Inp_mas(p,k)

Блок-схема функции вывода массива – Outp_mas(p,k,l)

Блок-схема функции формирования одномерного массива – Create_mas1(p,p0,k,l)

3. Текст программы:

#include <stdio.h>

#include <conio.h>

#define n 3

#define m 4

// Определение вызываемых функций

int Inp_mas(int *p,int k) // функция ввода двумерного массива

{

int i=0;

while(i<k)

{

scanf(“%d”,p);

p++;

i++;

}

return 0;

}

void Outp_mas(int *p,int k,int l) // функция вывода исходного массива

{

int i=0;

printf(“\nOutput matric:\n”);

while(i<k)

{

printf(“%d ”,*p);

if ((i+1)%l==0)

printf(“\n”);

p++;

i++;

}

return;

}

int Create_mas1(int *p,int *p0,int k,int l) /* функция формирования одномерного массива */

{

int i,j=0,s;

while(j<l)

{

i=s=0;

while(i<k)

{

s+=*(p+i*l);

i++;

}

*p0=s;

p0++;

p++;

j++;

}

return 0;

}

void main() // главная функция

{

int N,M[n][m],A[m],*p2,*p1;

p2=&M[0][0];

p1=&A[0];

N=n*m;

Inp_mas(p2,N);

Outp_mas(p2,N,m);

Create_mas1(p2,p1,n,m);

Outp_mas(p1,m,m);

getch();

return;

}

Задача 2

1. Постановка задачи: отсортировать нечетные строки введенного двумерного массива по возрастанию, а четные – по убыванию, вывести полученный массив.

Соседние файлы в предмете Программирование