Содержание
Постановка задания
Задание для всех вариантов звучит так (или, возможно, немного изменено, так как могут быть разные издания учебного пособия):
- Составьте программу.
- Войдите в систему и наберите текст программы.
- Откомпилируйте программу и запустите ее на выполнение.
- Объясните каждую строчку программы.
- Подготовьте ответы по следующим темам:
- Классы памяти.
- Массивы.
- Указатели.
Варианты заданий
№ | Задание (а) | Задание (б) |
В-1 | Дана последовательность $N$ элементов в виде массива. Посчитать сумму его положительных элементов с нечетными номерами. | Даны две матрицы $A$ и $B$ размерности $m · n$. Найти произведение $A · B$. |
В-2 | Дана последовательность $N$ элементов в виде массива. Вычислить среднее арифметическое положительных элементов с четными номерами. | Дана матрица $A$ размерности $m · n$ и вектор $X$ размерности $n$. Найти произведение $A · X$. |
В-3 | Дана последовательность $N$ элементов в виде массива. Найти количество элементов с нечетными номерами, которые больше последнего. | Дана матрица $B$ размерности $m · n$. Найти столбец с минимальной суммой и выдать этот элемент на терминал. |
В-4 | Дана последовательность $N$ элементов в виде массива. Найти минимальный элемент массива, поставить его на первое место, остальные элементы сдвигаются. | Дана матрица $A$ размерности $m · n$ и вектор $X$ размерности $m$. Найти произведение $X · A$. |
В-5 | Дана последовательность $N$ элементов в виде массива. Найти все элементы, которые удовлетворяют условию $A[i] = 2 · i$, и их количество. | Дана матрица $A$ размерности $m · n$. Найти сумму наименьших значений ее столбцов. |
В-6 | Дана последовательность $N$ элементов в виде массива. Найти сумму тех элементов, которые удовлетворяют условию $|A[i]| = i · 3$. | Дана матрица $A$ размерности $m · n$. Найти строку с максимальной суммой элементов и выдать ее на терминал. |
В-7 | Дана последовательность $N$ элементов в виде массива. Написать программу для уменьшения всех его положительных компонент в $2$ раза. | Дана матрица $A$ размерности $n · n$. Проверить, является ли матрица магическим квадратом. |
В-8 | Дана последовательность $N$ элементов в виде массива. Выписать все элементы, которые больше первого и меньше последнего, если они есть, иначе выдать сообщение об их отсутствии. | Дана матрица $A$ размерности $n · n$. Найти в каждой строке минимальный элемент и поставить его на место диагонального этой строки. |
В-9 | Дана последовательность $N$ элементов в виде массива. Найти сумму и количество тех его элементов, которые делятся на $5$ и не делятся на $3$. | Дана матрица $A$ размерности $m · n$. Найти сумму наибольших значений элементов ее строк. |
В-10 | Дана последовательность $N$ элементов в виде массива. Найти количество элементов с нечетными номерами, которые больше последнего. | Дана матрица $A$ размерности $m · n$. Найти строку с максимальной суммой элементов и выдать ее на терминал. |
Лабораторная работа №4 предполагает написание программ на языке Си в интегрированной среде Borland C. При заказе работы своего варианта вы получите качественно написанные и хорошо прокомментированные программы.
Образец выполнения (вариант №6)
Условие задания (а)
Дана последовательность $N$ элементов в виде массива. Найти сумму тех элементов, которые удовлетворяют условию $|A[i]| = i · 3$.
Реализация задачи (а) на языке Си
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include <stdio.h> // для ввода, вывода (scanf, printf) #include <conio.h> // для задержки (getch) #include <locale.h> // для руссификации (setlocale) #include <math.h> // для матем.функций (abs) #define MAX_SIZE 30 // предельно допустимое кол-во элементов массива А //--------------------------------------------- // главная функция программы (точка входа) //--------------------------------------------- int main(void) { int A[MAX_SIZE]; // одномерный массив целых чисел int N; // количество элементов массива int i; // счетчик циклов + индекс массива int sum; // сумма элементов, подчиняющихся условию |A[i]| = i * 3 setlocale(LC_ALL, "rus"); // настройка руссификации диалогов // печатаем условие задачи на экран printf("Дана последовательность N элементов в виде массива.\n"); printf("Найти сумму тех элементов, которые удовлетворяют условию |A[i]| = i * 3.\n\n"); // запрашиваем кол-во N элементов printf("Введите количество элементов массива N из отрезка [1 .. %d]: ", MAX_SIZE); scanf("%d", &N); sum = 0; // запрашиваем с клавиатуры элементы массива printf("\nВам предстоит ввести %d целых чисел.\n", N); for(i = 0; i < N; i++) { printf("\tВведите A[%d]: ", (i + 1)); scanf("%d", &A[i]); // сразу при вводе проверяем условие |A[i]| = i * 3 // но стоит учесть, что i нужно считать от 1!! if(abs(A[i]) == (i + 1) * 3) sum += A[i]; } // выводим в наглядной форме характеристики заданного массива printf("\nИсходный массив имеет вид:\n"); for(i = 0; i < N; i++) printf("%8d", A[i]); printf(" - значения элементов\n"); for(i = 0; i < N; i++) printf("%8d", i); printf(" - индексы элементов\n"); for(i = 0; i < N; i++) printf("%8d", (i + 1)); printf(" - номера элементов\n"); // печатаем результат программы на экран printf("\nСумма элементов массива, удовлетворяющих условию |A[i]| = i * 3, равна: %d", sum); printf("\nДля завершения работы программы нажмите любую клавишу..."); getch(); // задержка программы, чтобы можно было просмотреть результаты return 0; // завершение работы программы и передача управления в ОС } //--------------------------------------------- |
Результаты работы программы (а)
Условие задания (б)
Дана матрица $A$ размерности $m · n$. Найти строку с максимальной суммой элементов и выдать ее на терминал.
Реализация задачи (б) на языке Си
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | #include <stdio.h> // для ввода, вывода (scanf, printf) #include <conio.h> // для задержки программы (getch) #include <locale.h> // для руссификации (setlocale) #define M 10 // предельно допустимое кол-во строк матрицы #define N 10 // предельно допустимое кол-во колонок матрицы //---------------------------------------------- // главная функция программы (точка входа) //---------------------------------------------- int main(void) { int m, n; // кол-во строк и колонок матрицы А int A[M][N]; // двухмерный массив (матрица) А int i, j; // счетчики циклов + индексы матрицы int sumCurrentRow; // сумма элементов текущей строки матрицы int sumMaxRow; // максимальная сумма элементов среди всех строк int indexMaxSum; // номер строки с максимальной суммой setlocale(LC_ALL, "rus"); // настройка руссификации в диалогах программы // выводим условие задачи на экран printf("Дана матрица размерности m * n. Найти строку с максимальной суммой элементов и выдать ее на терминал.\n"); // запрашиваем кол-во строк и колонок матрицы вводом с клавиатуры printf("\nВведите количество строк матрицы из отрезка [1 .. %d]: ", M); scanf("%d", &m); printf("Введите количество колонок матрицы из отрезка [1 .. %d]: ", N); scanf("%d", &n); // вводим с клавиатуры значения матрицы (целые числа) printf("\nВам предстоит ввести %d целых чисел (значения элементов матрицы).\n", m * n); for(i = 0; i < m; i++) for(j = 0; j < n; j++) { printf("\tВведите A[%d][%d]: ", (i + 1), (j + 1)); scanf("%d", &A[i][j]); } // выводим элементы заполненной матрицы на экран в табличном представлении printf("\nИсходная матрица имеет вид:\n"); for(i = 0; i < m; i++) { for(j = 0; j < n; j++) printf("\t%d", A[i][j]); printf("\n"); } // ищем номер строки с максимальной суммой элементов indexMaxSum = -1; for(i = 0; i < m; i++) { // начинаем суммировать элементы, находящиеся в i-ой строке sumCurrentRow = 0; for(j = 0; j < n; j++) sumCurrentRow += A[i][j]; // если была обработка 1-й строки или сумма текущей строки больше суммы макс.строки if((indexMaxSum == -1) || (sumCurrentRow > sumMaxRow)) { sumMaxRow = sumCurrentRow; // запоминаем новую максимальную сумму indexMaxSum = i; // запоминаем индекс строки } } // выводим результаты на экран printf("\nНомер строки с максимальной суммой элементов: %d", (indexMaxSum + 1)); printf("\nСумма элементов, находящихся в этой строке: %d", sumMaxRow); printf("\nЭлементы строки с максимальной суммой: "); for(j = 0; j < n; j++) printf("\t%d", A[indexMaxSum][j]); printf("\n\nДля завершения работы программы нажмите клавишу ENTER..."); getch(); // задержка программы, чтобы можно было просмотреть результаты return 0; // завершение работы программы и передача управления в ОС } //---------------------------------------------- |
Результаты работы программы (б)
Стоимость заказа работы
💡 Стоимость одной программы из любого варианта составляет $110$ рублей. Так как в каждый вариант входит по 2 задачи, то стоимость заказа полного варианта составит — $110 · 2 = 220$ рублей.
Для оформления заказа пишите на почту: proglabs@mail.ru.
Время нашего ответа обычно составляет не более 10 минут.
Добавить комментарий