Задача №1. Условие задачи В массиве строк все четные строки перезаписать наоборот. Описание метода решения задачи 1. Выявляем исходные данные, результаты, назначаем им имена. Исходные данные: квадратная матрица int mass[10][10] размерность матрицы: int N; Результаты: преобразованная матрица, где четные строки перезаписаны в обратном порядке 2. Выбираем метод решения задачи, разбиваем на этапы (с учетом возможностей ЭВМ) Первоначально составим укрупненную схему, а затем подробную для блоков IV, V Укрупненная схема I. Подключение всех необходимых заголовочных файлов II. Глобальные описания переменных int mass[10][10], n, III. Определение размерности 2-го мерного массива IV. Элементы матрицы принимаются как случайные числа, вывод матрицы на экран в виде таблицы V. Получение необходимого результата и вывод его на экран IV. Вывод матрицы на экран в виде таблицы for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { mass[i][j]=random(50)-10; cout<<setw(5)<<mass[i][j]; } cout<<endl; } V. 1. Так как алгоритм циклический, то выводим три набора формул и условие окончания (повторения) цикла. - рабочие формулы - нет, ничего не вычисляем - закон изменения аргументов (переменных): i=i+1, j=j+1, j-- - формулы для вычисления начальных значения аргументов (переменных): i:=0; j=0; j=n-1; - условие повторения цикла i<n, j<n, j>=0; 2. МРЗ: * при выводе матрицы на экран проверяем, строка четная? if (i%2==0), ели Да, - - то в столбце элементы выводим в прямом порядке, в программе это запишется так: for (int j=0; j<n; j++) cout<<setw(5)<<mass[i][j]; - иначе в обратном: else for(int j=n-1; j>=0;j--) cout<<setw(5)<<mass[i][j]; Программа, реализующая данный алгоритм #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<iostream.h> #include<iomanip.h> int main() { clrscr(); randomize(); int mass[10][10],n; cout<<"Размерность массива n="; cin>>n; printf("Исходная матрица:\n"); for (int i=0; i<n; i++) { for (int j=0; j<n; j++) { mass[i][j]=random(50)-10; cout<<setw(5)<<mass[i][j]; } cout<<endl; } printf("Преобразованная матрица:\n"); for (i=0; i<n; i++) { if (i%2==0) for (int j=0; j<n; j++) cout<<setw(5)<<mass[i][j]; else for(int j=n-1; j>=0;j--) cout<<setw(5)<<mass[i][j]; cout<<endl; } getch(); }
1/--страниц