close

Вход

Забыли?

вход по аккаунту

?

Задача 1 (9)

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