 
        
        Informatika-laboratornye / лабы отчеты / лаб6
.docФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Вечерне-заочный факультет
«Обработка двумерного массива»
Отчет по лабораторной работе №6
по дисциплине
«Информатика»
Вариант 3
Выполнил:
студент гр. ИТ-11
Бибанаев В.А.
Проверил:
Малышева А.В.
Киров 2015
Лабораторная работа №6
Тема: Обработка двумерного массива
Цель: выработка умений решения на компьютере обработки двумерного массива на языке Си, отладка и тестирование программы.
Задание (вариант №3): Сформировать массив из строки с минимальным произведением элементов
Выполнение задания:
1. Математическая постановка
Исходные данные:
a[10][10] – массив целых чисел на 10 чисел
a[i][j] = целое i-тое число строки j-ого столбца матрицы
Допустимые значения вводимых данных согласно условию задачи:
b = количество строк матрицы, не более 10, тип int
с = количество столбцов матрицы, не более 10, тип int
a[i][j] = i-тое число строки j-ого столбца матрицы, тип int
Результат:
r[j] = массив с минимальным произведением целых чисел строки массива a[i][j], тип int
2. Разработка алгоритма.
Алгоритм вычисления значения функции имеет линейную структуру c вложенными циклами и условием. Схема алгоритма:
 
3. Разработка программы
3.1Таблица идентификаторов
| Имя переменной | Тип переменной | Пояснение | Спецификации формата | 
 | 
 | 
| Алгоритм | Программа | 
 | |||
| Исходные данные | Ввод | Вывод | 
 | ||
| a[10][10] | a[10][10] | int | исходный массив данных | - | - | 
| b | b | int | количество строк | %d | %d | 
| с | с | int | количество столбцов | %d | %d | 
| a[i][j] | a[i][j] | int | i-тое число строки j-ого столбца матрицы | %d%d | %d%d | 
| w | w | int | временная переменная | - | - | 
| t | t | int | временная переменная | - | - | 
| q | q | int | произведение чисел i-ой строки | - | - | 
| k | k | int | временная переменная | - | - | 
| Результаты | 
 | ||||
| r[j] | r[j] | int | выходной массив | - | %d | 
3.2 Содержание результатов работы программы на экране

3.3 Текст программы:
//---------------------------------------------------------------------------
// Лабораторная работа №3 Вывод на текстовый экран таблицы и графика функции
// Выполнил: Бибанаев В.А., гр. ИТ-11 Вариант 3
//
//---------------------------------------------------------------------------
#include<stdio.h>
main()
{
int a[10][10], r[10], i, j, b, c, q=1, w, k, t=99999;
printf("Vvesti kolichestvo strok matricy < 10 ", b); //ввод размера строк матрицы
scanf("%d", &b);
printf("\n");
printf("Vvesti kolichestvo stolbcov matricy < 10 ", c); //ввод размера столбцов матрицы
scanf("%d", &c);
printf("\n");
printf("Vvod elementov matricy: \n");
for(i=0; i<b; i++) //цикл ручного ввода элементов матрицы (строки)
{
for(j=0; j<c; j++) //цикл ручного ввода элементов матрицы (столбцы)
{
printf("a[%d][%d] = ", i, j); //ввод элементов матрицы
scanf("%d", &a[i][j]);
}
}
printf("\n");
printf("Vasha matrica: \n");
for(i=0; i<b; i++) //цикл печати элементов матрицы (строки)
{
for(j=0; j<c; j++) //цикл печати элементов матрицы (столбцы)
{
printf("%4d", a[i][j]); //печать элементов матрицы
}
printf("\n");
}
for(i=0; i<b; i++) //цикл нахождения минимального произведения элементов в строке
{
for(i=i, j=0, q=1; j<c; j++)
{
q*=a[i][j]; //произведение элементов в строке
w=q; //присваивание переменной w последнего произведения
}
if(q<t) //условие при котором переменная t получит значение последнего произведения
{
t=q;
if(t<=w) //условие при котором пременная k получит номер строки с минимальным произведением
{
k=i;
}
}
}
printf("\n");
printf("Stroka c min proizvedeniem elementov: ");
for(j=0, k; j<c; j++) //цикл присваивания значений строки с минимальным произведением в новый массив
{
r[j]=a[k][j]; //присваивание значений строки с мин. произведением в новый массив
}
for(j=0; j<b; j++) //цикл печати нового массива
{
printf("%4d", r[j]); //вывод на экран нового массива
}
printf("\n");
printf("Vyhod - press Enter"); //для выхода нажать Ентер
getchar();
getchar();
}
Выводы:
