Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 17.04.2012, 20:35   #1 (permalink)
EvgeniyaL
Новичок
 
Регистрация: 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.
EvgeniyaL вне форума   Ответить с цитированием

Старый 17.04.2012, 20:35
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Люди часто создают схожие топики, советую вам почитать созданное ранее

Помогите со схемами АТСК
Помогите с задачами на фри Паскале
Помогите в паскале

Старый 17.04.2012, 20:48   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Написать-то написали, но с ошибками. Например, в первой задаче: строка
if A[i,j] < 0 then
появляется после того, как циклы по i и по j уже закончены и закрыты! Как же так можно?
P.S. С блок-схемами помочь, к сожалению, не могу - не занимаюсь этим.
Vladimir_S вне форума   Ответить с цитированием
Старый 17.04.2012, 21:14   #3 (permalink)
EvgeniyaL
Новичок
 
Регистрация: 17.04.2012
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ой..а Вы не могли бы тогда ошибки посомтреть и исправить?
EvgeniyaL вне форума   Ответить с цитированием
Старый 18.04.2012, 11:34   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от EvgeniyaL Посмотреть сообщение
ой..а Вы не могли бы тогда ошибки посомтреть и исправить?
Ой... мог бы.
По первой - уже сказано выше, вторая - вроде всё правильно, а вот третья - увы и ах. Во-первых, неправильно расставлены операторные скобки: вы опять закрыли цикл по 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.
Vladimir_S вне форума   Ответить с цитированием
Старый 18.04.2012, 23:09   #5 (permalink)
EvgeniyaL
Новичок
 
Регистрация: 17.04.2012
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое!)
EvgeniyaL вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 02:14.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.