НИЖЕГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
им. Р.Е.АЛЕКСЕЕВА
Кафедра «Прикладная математика»
Дисциплина «Информатика»
Лабораторная работа№3
Вариант№23
Выполнил:Федоров К.Р.
Группа 19-Э-5
Проверил: Лапшин И.В.
Нижний Новгород 2019
№1 Найти максимальный из положительных элементов массива и поменять его местами с |
||
первым. |
Начало |
|
|
|
|
|
max=-1000 , |
|
|
x , y , A[8] |
|
|
„Введите массив“ |
|
|
i=0 |
|
|
i<8 |
Нет |
|
|
|
|
A[i] |
|
|
A[i]>max |
Да |
|
&& |
|
|
|
|
|
A[i]>0 |
max=a[i] |
|
|
|
|
|
x=i |
|
i=i+1 |
|
|
y=A[0] |
|
|
A[0]=max |
|
|
A[x]=y |
|
|
„Массив после замены“ |
|
i=0 |
|
i<8 |
Нет |
|
|
A[i] |
|
i=i+1 |
|
Конец |
|
#include "stdafx.h" #include<iostream> #include<math.h> using namespace std; void main();
int _tmain(int argc, _TCHAR* argv[])
{
double x,a[8], max=-1000000; int i,y;
i = 0;
for (i = 0; i < 8; i = i + 1)
{
cout << "Введи a[" << i << "]="; cin >> a[i];
if (a[i] > max & a[i] > 0)
{
max = a[i]; y = i;
}
}
//замена x = a[0];
a[0] = max; a[y] = x;
i = 0;
cout << endl; //масив после замены
for (i = 0; i < 8; i = i + 1)
{
cout <<"член массива №" << i << "=" << a[i] << endl;
}
}
Первый случай |
Второй случай |
Первый случай
i 0
M ( 12 |
6 7 |
8 9 14 0 |
3.5 ) |
|
|
|
|
|
|
|
||||||||||
while |
i 8 |
|
|
|
0 i |
|
|
|
|
|
0 i |
|
|
|
( 14 |
6 7 8 |
9 12 0 3.5 ) |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
imax if |
|
M |
|
0 |
|
|
|
M |
|
max i imax |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
max if |
|
M |
0 i |
0 |
|
M |
0 i |
max M |
0 |
i |
max |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i i 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Od M0 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
M0 0 max
M0 imax Od
Второй случай
i 0
M ( 8 9 9 9 20 14 2 1 )
while i 8 |
|
|
|
0 i |
|
|
|
|
|
0 i |
|
|
|
( 14 9 |
9 9 20 8 2 1 ) |
|||
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
imax if |
|
M |
|
0 |
|
|
|
M |
|
max i imax |
|
||||||
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
max if |
|
M |
0 i |
0 |
|
M |
0 i |
max M |
0 |
i |
max |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i i 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Od M0 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
M0 0 max
M0 imax Od
№2 Найти сумму отрицательных членов матрицы, лежащих под побочной диагональю. Найти минимальный элемент среди положительных членов 1-го столбца. Поменять этот местами этот элемент с элементом А[3][2]. И вывести полученный массив в блокнот.
|
|
Начало |
|
|
S=0 , min=10000 |
||
|
|
A[4][4] |
|
|
|
i=0 |
|
|
|
i<4 |
Нет |
|
|
|
|
i=i+1 |
|
j=0 |
|
|
Нет |
j<4 |
|
|
|
|
|
A[i][j]=sin(i*3.5)-(2.1*j) |
|||
да |
A[i][j]>0 && |
|
|
j<1 && |
|
||
|
|
||
|
A[i][j]<min |
|
|
min=A[i][j] |
|
|
|
im=i |
|
|
|
jm=j |
|
|
|
да |
A[i][j]<0 && |
|
|
|
|
i+j>3 |
|
S=S+A[i][j] |
|
|
|
|
|
j=j+1 |
|
|
A[im][jm]=A[3][2] |
||
|
A[3][2]=min |
|
|
|
|
i=0 |
|
|
|
i<4 |
|
i=i+1 |
|
j=0 |
|
|
|
|
|
|
нет |
j<4 |
|
|
|
|
|
|
|
A{i}{j} |
|
|
|
j=j+1 |
|
|
|
Конец |
|