35

Помогите решить две задачки

dmg_shark 04 сентября 2022

Помогите решить две задачки (Паскаль) Задание 1В одномерном массиве случайных вещественных числе F (17) определить количество положительных элементов и их сумму. Задание 2В матрице L (5,5) случайных вещественных чисел определить максимальный элемент выше побочной диагонали, поменять его местами с элементом 2 строки 2 столбца. Большая просьба расписать задачу подробно, хочу не просто списать решения, а понять его и научиться решать сам, огромное спасибо.

категория: информатика

40

1) uses crt; const n=17; //число элементов в массивеvar f: array[1… n] of integer; i,s,k: integer; beginrandomize; s: =0; k: =0; //чтобы не возникало ошибок, на всякий случай все обнулимfor i: =1 to n dobeginf[i]: =random (100) -50; //к примеру, взяла интервал от -50 до 50//всего получилось 100 чисел, минимальное -50writeln (f[i]); if f[i]>0 thenbegins: =s+f[i]; inc (k) //собираем сумму положительных элементов массива//и находим их количество, прибавляя к переменной к единицуend; end; writeln; //протсо сделаем пробел между массивом и результатами, чтобы не получилась кашаwriteln (s); writeln (k); end.2) uses crt; const n=5; var l: array[1… n,1… n] of integer; i,j,max,k,t,m,i1,j1: integer; beginrandomize; for i: =1 to n dofor j: =1 to n dol[i,j]: =random (100) -50; for i: =1 to n dobeginfor j: =1 to n dowrite (l[i,j]: 4); //это означает, что на запись элемента массива отводится 4 местаwriteln; end; //таким способом я вывела на экран двумерный массив в форме матрицыwriteln; max: =-50; //чтобы найти максимальный элемент, нужно сначала приравнять его к минимально возможному значению//так как побочная диагональ располагается для строк: от 1 до 4, а для столбцов — от 1 до 4 (сама побочная диагональ нас не интересует), то заведем еще переменные t и mt: =1; m: =4; //теперь найдем минимальный элемент выше побочной диагоналиrepeatfor i: =t to t dofor j: =1 to m doif l[i,j]>max thenbeginmax: =l[i,j]; i1: =i; j1: =j; //мы нашли максимальный элемент и запомнили его положениеend; inc (t); m: =m-1; until t=5; l[2,2]: =l[2,2]+l[i1,j1]; l[i1,j1]: =l[2,2]-l[i1,j1]; l[2,2]: =l[2,2]-l[i1,j1]; // поменяли их местамиfor i: =1 to n dobeginfor j: =1 to n dowrite (l[i,j]: 4); writeln; end; //опять выводим матрицу на экранwriteln; end.

пользователи выбрали этот ответ лучшим

Знаете другой ответ?
Другие вопросы по информатике
04 сентября 2022
Program vagoni; varA: array[1… 15] of real; B: array[1… 15] of real; C: array[1… 15] of real; i,m,q,j,d,N: integer; s,max_num, max_index: real; beginN: =15; m: =10; q: =50; writeln ('Vvedite massy vagonov sostava M sostoyashego iz 15 vagonov'); s: =0; Beginfor i: =1 to N doBeginwrite ('vagon_',i,'-> '); readln (a[i]); end; end; writeln ('); writeln ('VSE vagoni: '); for i: =1 to N dowriteln ('vagon_',i,'=',a[i],'tonn'); writeln ('); writeln ('); writeln ('Porojnie vagoni: '); for i: =1 to N dobeginif (A[i] <= m) thenwriteln ('porojniy vagon=', i); end; writeln ('); writeln ('grujenie vagoni: '); for i: =1 to N dobeginif (A[i] > m) then s: =s+a[i]; if (A[i] > m) thenwriteln ('grujeniy vagon=', i); end; Writeln ('Summa mass grujenih vagonov: ', s); if s>q thenwriteln ('previshenie massy! sostav ne mojet bit sformirovan') elsebeginwriteln; writeln ('Noviy sostav: '); j: =1; d: =1; for i: =1 to N{-1} doif A[i] > m thenbeginB[j]: =A[i]; writeln ('vagon_',j,'=',B[j],'tonn'); j: =j+1; end elsebeginC[d]: =A[i]; d: =d+1; end; end; Beginwriteln ('); writeln ('Ostatok: '); d: =d-1; WHILE d>0 dobeginwriteln ('vagon_',d,'=',C[d],'tonn'); d: =d-1; end; end; writeln ('); beginmax_index: =1; max_num: =B[1]; for i: =2 to j doif B[i] > max_num then beginmax_index: =i; max_num: =B[i]; end; writeln ('Maksimalnaya massa vagona sostava B=',max_num,' tonn', ' Ego nomer: ',max_index); end; end. Вот программа нужно чтоб формировался состав б в любом случае но не превышал 50 тонн, а остальные груженые вагоны вывести в остаток, и среди вагонов состава б найти вагон с максимальной массой

ПОПУЛЯРНОЕ
Есть интересный вопрос? Задайте его нашему сообществу, у нас наверняка найдется ответ!
Делитесь опытом и знаниями, зарабатывайте награды и репутацию, заводите новых интересных друзей!
Задавайте интересные вопросы, давайте качественные ответы и зарабатывайте деньги. Подробнее...