Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы - Паскаль, Си, Java, PHP.doc
Скачиваний:
65
Добавлен:
04.06.2015
Размер:
5.29 Mб
Скачать

Задание на лабораторную работу

  1. Получить задание в соответствии с номером своего варианта.

  2. Составить схему алгоритма решения задачи.

  3. Написать код программы на языке Паскаль в среде Borland Pascal for Windows.

  4. Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования

  • в нормальных условиях,

  • при граничных условиях,

  • при некорректных входных данных,

  • по критерию покрытия решений – результат проверки каждого условия принимал значение истина или ложь хотя бы один раз,

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

  1. Получить результат.

  2. Оформить отчет по лабораторной работе.

Пример оформления работы Задание 1.

1.Создать функцию, определяющую сумму максимальных элементов главной и побочной диагоналей массиваmassivnn.

Перед началом поиска максимального элемента max_1главной диагонали массива принимаем за него элементmassiv11. После этого сравниваем остальные элементы главной диагоналиmassivii (i=2,…,n)с текущим максимумом: если очередной элемент больше текущего максимумаmax_1, то сейчас он – текущий максимум.

Перед началом поиска максимального элемента max_2побочной диагонали массива принимаем за него элементmassivnn. После этого сравниваем остальные элементы побочной диагоналиmassivij (i=2,…,n; j=n-i+1)с текущим максимумом: если очередной элемент больше текущего максимумаmax_2, то сейчас он – текущий максимум.

2. Схема алгоритма решения задачи.

2.1. Головная программа:

2.2. Подпрограмма-функция:

  1. Код программы

3.1. На языке Паскаль:

Program Variant_0;

Uses WinCrt;

Const n = 5; {задание размера массива именованной константой}

Type TMass=Array [1..n, 1..n] Of Integer;{описание нового типа}

Var i, j : Word;

summa, v_min, v_max: Integer;

massiv : TMass;

Function Summa_max(nn:Integer; AA:TMass):Integer;

Var i, max_1, max_2: Integer;

Begin

max_1:=AA[1,1];

For i:=2 To nn Do

If (AA[i,i]>max_1)

Then max_1:=AA[i,i];

max_2:=AA[1,nn];

For i:=2 To nn Do

If (AA[i,nn-i+1]>max_2)

Then max_2:=AA[i,nn-i+1];

Summa_max:=max_1+max_2;

End; {функции Summa_max}

Begin {головной программы}

Randomize; {запуск генератора случайных чисел}

WriteLn('Лабораторная работа №7_1');

WriteLn('Вариант №0');

WriteLn('ИС-11-1');

WriteLn('Пупкин Василий');

WriteLn;

WriteLn('Задайте диапазон случайных чисел');

Write('v_min=');

ReadLn(v_min);

Write('v_max=');

ReadLn(v_max);

For i:=1 To n Do {заполнение массива случайными числами}

For j:=1 To n Do

massiv[i,j]:=Random(v_max-v_min + 1) + v_min;

WriteLn;

WriteLn('Исходный массив:');

For i:=1 To n Do {вывод на экран исходного массива}

Begin

For j:=1 To n Do

Write(massiv[i,j]:5);

WriteLn;

End;

WriteLn;

summa:=Summa_max(n, massiv);

WriteLn('Сумма максимальных элементов диагоналей:', summa);

End.

    1. На языке Си:

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <time.h>

// прототипы функций

void vorm_mass(int nn, int mass_max, int mass_min, int mass[nn][nn]);

int summa_max(int nn, int mass[nn][nn]);

int main()

{

int i, j, n, massiv_min, massiv_max, summa;

printf("\nЛабораторная работа №7_1");

printf("\nВариант №0");

printf("\nПО-11-1");

printf("\nПупкин Василий\n");

printf("\nВведите нижнюю границу диапазона:");

scanf("%d", &massiv_min);

printf("\nВведите верхнюю границу диапазона:");

scanf("%d", &massiv_max);

printf("\nВведите размер массива:");

scanf("%d", &n);

int massiv[n][n];

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

vorm_mass(n, massiv_max, massiv_min, massiv);

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

{

for (j=0; j<n; j++)

printf("%5d", massiv[i][j]);

printf("\n");

}

printf("\n");

summa = summa_max(n, massiv);

printf("\nСумма максимальных элементов диагоналей: %d", summa);

return 0;

}

//описание функций

// 1. формирование массива

void vorm_mass(int nn, int mass_max, int mass_min, int mass[nn][nn])

{

int i, j, m;

time_t t; // текущее время для инициализации

// генератора случайных чисел

srand((unsigned) time(&t)); // инициализация генератора

// случайных чисел

m = mass_max-mass_min + 1;

// получение случайного числа в диапазоне

// от mass_min до mass_max

for (i=0; i<nn; i++)

for (j=0; j<nn; j++)

mass[i][j]=rand()% m + mass_min;

}

// 2. определение суммы максимальных элементов диагоналей массива

int summa_max(int nn, int mass[nn][nn])

{

int i, max_1, max_2;

max_1 = mass[0][0];

for (i=1; i<nn; i++)

if (mass[i][i] > max_1)

max_1 = mass[i][i];

max_2 = mass[0][nn-1];

for (i=1; i<nn; i++)

if (mass[i][nn-i-1] > max_2)

max_2 = mass[i][nn-i-1];

return max_1 + max_2;

}

4. Компиляция, отладка, тестирование и получение результата: