close

Вход

Забыли?

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

?

Задача 1 (8)

код для вставкиСкачать
Задача №1.
Условие задачи. В массиве действительных чисел размером M * N получить последовательность b1,b2,...bm где bk  квадратов элементов k строки, модули которой лежат в промежутке [1,5].
Описание метода решения задачи
1. Выявляем исходные данные, результаты, назначаем им имена.
Исходные данные: квадратная матрица int mass[10][10] размерность матрицы: int N, M; Результаты: последовательность b1,b2,...bn где bk å квадратов элементов k строки, модули которых лежат в промежутке [1,5]
2. Выбираем метод решения задачи, разбиваем на этапы (с учетом возможностей ЭВМ)
Первоначально составим укрупненную схему, а затем подробную для блоков IV, V
Укрупненная схема
I. Подключение всех необходимых заголовочных файлов
II. Глобальные описания переменных int mass[10][10],N, M, s=0,k=0;
III. Определение размерности 2-го мерного массива IV. Элементы матрицы принимаются как случайные числа, вывод матрицы на экран в виде таблицы
V. Получение необходимого результата и вывод его на экран
IV. Вывод матрицы на экран в виде таблицы
for (int i=0; i<n; i++)
{ for (int j=0; j<n; j++)
{ mass[i][j]=random(15)-5;
cout<<setw(5)<<mass[i][j];
}
cout<<endl;
}
V. 1. Так как алгоритм циклический, то выводим три набора формул и условие окончания (повторения) цикла. - рабочие формулы - s= s + mass[i][j]* mass[i][j];
- закон изменения аргументов (переменных): i=i+1, j=j+1
- формулы для вычисления начальных значения аргументов (переменных): i:=0; j=0; s =0; k=0;
- условие окончания цикла: i>n, j>n (повторения i<n, j<n)
2. МРЗ:
* цикл обработки массива: используем алгоритм расчета матрицы при работе со строками - цикл строк операторные скобки
[блок присваивания переменным начальных значений]
цикл столбцов
- проверяем находится модуль элемента в промежутке [1,5] - это составное условие в программе должно быть записано следующим образом: if ((abs(mass[i][j])>=1) && (abs(mass[i][j])<=5)), если Да, то:
вычисляем количество этих элементов (для проверки правильности решения задачи)
вычисляем сумму по рабочей формуле
- выводим на экран результат
Блок схема задачи №2
Программа, реализующая данный алгоритм
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream.h>
#include<iomanip.h>
int main()
{
clrscr();
randomize();
int mass[10][10],m,n,s,k,b[10];
cout<<"Kol-vo strok n="; cin>>n;
cout<<"Kol-vo stolbzov m="; cin>>m;
printf("Isxodnaya MATRIX :\n");
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
mass[i][j]=random(15)-5;
cout<<setw(5)<<mass[i][j];
}
cout<<endl;
}
k=0;
for (i=0; i<n; i++)
{
k++;
s=0;
for (int j=0; j<m; j++)
if ((abs(mass[i][j])>=1) && (abs(mass[i][j])<=5))
s=s+mass[i][j]*mass[i][j]; cout<<setw(7)<<"k="<<k;
cout<<setw(9)<<"s="<<s<<endl;
}
cout<<endl;
getch(); }
Документ
Категория
Рефераты
Просмотров
10
Размер файла
21 Кб
Теги
задачи
1/--страниц
Пожаловаться на содержимое документа