17.04.2012, 20:35 | #1 (permalink) |
Новичок
Регистрация: 17.04.2012
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите с блок-схемами к задачам в Паскале
1. Найти среднее арифметическое отрицательных элементов матрицы t (9 ,6). Составить схему алгоритма и программу к ней. Program pr1; var i,j,kol:integer; sum,sr:real; A:array[1..9,1..6] of integer; begin randomize; sum:=0; kol:=0; for i:=1 to 9 do begin writeln; for j:=1 to 6 do begin A[i,j]:=random(15)-5; write(A[i,j]:6); end; end; if A[i,j] < 0 then begin sum:=sum+A[i,j]; kol:=kol+1; end; sr:=sum/kol; writeln; writeln('srednee arifm=',sr:2:2); readln; end. 2. В массиве y (30), сформированным случайным образом, найти максимальный элемент и его номер. Составить схему алгоритма и программу к ней. Program pr2; var A:array[1..30] of integer; i,max,maxn:integer; begin randomize; for i:=1 to 30 do begin A[i]:=random(101)-20; write(' ',A[i]); end; max:=A[1]; maxn:=1; for i:=2 to 30 do if A[i]>max then begin max:=A[i]; maxn:=i; end; writeln; writeln('max=',max); writeln(‘nomer max=’,maxn); readln; end. 3.В массиве хранится сальдо 15 стран мира. Найти количество стран с положительным сальдо и отрицательным сальдо. Определить, на сколько суммарное положительное сальдо превышает суммарное отрицательное. Составить схему алгоритма и программу к ней. Program pr3; var A:array[1..15] of integer; i,kol1,kol2,sum1,sum2,razn:integer; begin randomize; sum1:=0; sum2:=0; kol1:=0; kol2:=0; for i:=1 to 15 do begin A[i]:=random(15)-5; writeln('strana=',i,' saldo=',A[i]); end; if A[i] > 0 then begin kol1:=kol1+1; sum1:=sum1+A[i]; end; if A[i]<0 then begin kol2:=kol2+1; sum2:=sum2+A[i]; end; writeln('kol-vo stran s +saldo=',kol1); writeln('kol-vo stran s -saldo=',kol2); razn:=sum1-sum2; writeln('raznost=',razn); readln; end. |
17.04.2012, 20:35 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Люди часто создают схожие топики, советую вам почитать созданное ранее Помогите со схемами АТСК Помогите с задачами на фри Паскале Помогите в паскале |
17.04.2012, 20:48 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Написать-то написали, но с ошибками. Например, в первой задаче: строка
if A[i,j] < 0 then появляется после того, как циклы по i и по j уже закончены и закрыты! Как же так можно? P.S. С блок-схемами помочь, к сожалению, не могу - не занимаюсь этим. |
18.04.2012, 11:34 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ой... мог бы.
По первой - уже сказано выше, вторая - вроде всё правильно, а вот третья - увы и ах. Во-первых, неправильно расставлены операторные скобки: вы опять закрыли цикл по i, а потом пытаетесь считать количества и суммы, во-вторых, Вы забыли, что sum2 - число отрицательное, а потому при вычислении raznost надо либо брать sum1-Abs(sum2), либо просто менять знак: sum1+sum2. Ну и плюс небольшая косметика с форматами. С учетом всего этого: Код:
var i,j,kol:integer; sum,sr:real; A:array[1..9,1..6] of integer; begin randomize; sum:=0; kol:=0; for i:=1 to 9 do begin writeln; for j:=1 to 6 do begin A[i,j]:=random(15)-5; write(A[i,j]:6); if A[i,j]<0 then begin sum:=sum+A[i,j]; kol:=kol+1; end; end; end; sr:=sum/kol; writeln; writeln('srednee arifm= ',sr:0:3); readln; end. Код:
var A:array[1..15] of integer; i,kol1,kol2,sum1,sum2,razn:integer; begin randomize; sum1:=0; sum2:=0; kol1:=0; kol2:=0; for i:=1 to 15 do begin A[i]:=random(15)-5; writeln('strana= ',i:2,' saldo= ',A[i]:3); if A[i]>0 then begin kol1:=kol1+1; sum1:=sum1+A[i]; end; if A[i]<0 then begin kol2:=kol2+1; sum2:=sum2+A[i]; end; end; writeln('kol-vo stran s +saldo= ',kol1); writeln('kol-vo stran s -saldo= ',kol2); razn:=sum1+sum2; writeln('raznost= ',razn); readln; end. |
18.04.2012, 23:09 | #5 (permalink) |
Новичок
Регистрация: 17.04.2012
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо большое!)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|