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();
}
Выводы: