- •Оглавление
- •Лабораторная работа №1
- •Лабораторная работа №2 Форматный ввод-вывод
- •Лабораторная работа №3 Составление алгоритма решения задачи и его реализация
- •1. Изучить:
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №4 Программирование алгоритмов циклической структуры
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №5 Обработка одномерных массивов
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №6 Обработка двумерных массивов
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №7 Типовые приемы алогитмизации
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №8 Обработка символьных данных
- •1. Изучить:
- •Пример выполнения работы
- •1. Изучить:
- •Пример выполнения работы
- •Пример выполнения работы
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №12 Работа с файлами на верхнем уровне
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №13 Организация работы в графическом режиме
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №14 Создание графика
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №15 Организация перемещения объекта по заданной траектории
- •1. Изучить:
- •Пример выполнения работы
- •Лабораторная работа №16 Организация работы в текстовом режиме
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №17 Создание светового меню
- •1. Изучить:
- •Контрольные вопросы
- •Лабораторная работа №18 Динамическое распределение памяти, создание списка
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
Пример выполнения работы
В массиве L(N,M) N<=3, M<=4 найти столбец с наименьшей суммой элементов. На экран вывести номер столбца имеющего наименьшую сумму элементов, элементы этого столбца и сумму его элементов.
Необходимо организовать вложенный цикл для перебора элементов массива по столбцам. Перед внешним циклом задать начальное значение номера столбца имеющего наименьшую сумму элементов (0) и начальное значение наименьшей суммы как сумму элементов первого столбца. Перед внутренним циклом задавать начальное значение суммы элементов текущего столбца (0). Во внутреннем цикле накапливать сумму элементов текущего столбца. После ее вычисления организовать сравнение суммы элементов текущего столбца с наименьшей суммой. В случае если сумма элементов текущего столбца меньше наименьшей суммы считать наименьшей суммой сумму элементов текущего столбца.
Программа решения задачи имеет вид:
#include <stdlib.h> //подключение файла
#include <stdio.h> //подключение файла
void main ( ) //заголовок функции main
{
float L[3][4], smin,s;
int i,j,N,M,nmin; // объявление переменных
do
{printf (“Введите размерность массива N в диапазоне от 1 до3, M - от 1 до4 \n”);
// вывод на экран сообщения
scanf (“%d%d”, &N,&M); // ввод значения переменной
}while(N<1||N>3||M<1||M>4);
//пока введенные значения не лежат в заданном диапазоне
randomize(); // инициализация датчика случайных чисел
printf (“Массива L\n”); // вывод на экран сообщения
for(i=0;i<N;i++) // цикл по перебору элементов массива по строкам
{ for(j=0;j<M;j++)
{L[i][j]=(random(100)-50)/10.;
//генерация случайного числа и присвоение его элементу массива
printf (“%f”, L[i][j]); // вывод значения элемента массива
}
printf (“\n”); //переход на новую строку
}
nmin=0; smin=0; // присвоение начального значения
for(i=0;i<N;i++)
smin+=L[i][0]; //накопление суммы элементов первого столбца
for(j=0;j<M;j++) // цикл по перебору элементов массива по столбцам
{ s=0; // присвоение начального значения
for(i=1;i<N;i++)
s+=L[i][j]; //накопление суммы элементов текущего столбца
if (s<smin)
//если меньше значения наименьшей суммы
{ smin=s;
//то наименьшей сумме присваивается значение суммы элементов текущего столбца
nmin=j;
// индексу столбца, имеющего наименьшую сумму присваивается //индекс текущего столбца
}
}
printf (“Номер столбца, имеющего наименьшую сумму элементов=%2d\n”,nmin);
printf (“Элементы столбца, имеющего наименьшую сумму элементов\n”);
for(i=0;i<N;i++)
printf (“%f”, L[i][0]);
printf (“\nсумма элементов=%f\n”,smin); //вывод значений переменных
return; //завершение функции main
}
Контрольные вопросы
Указать основные правила организации вложенных циклов.
Указать способы выхода из внутреннего цикла.
Как организовать вывод матрицы в общепринятом виде?
Как организовать вывод нижней треугольной матрицы в общепринятом виде?
Как организовать ввод матрицы размером N на M элементов?
