Uses Crt; const n=5;m=7; var a:array[1..n,1..m]of integer; b:array[1..m]of real; i,j,k,c:integer; s:real; begin clrScr; for i:=1 to n do begin writeln; for j:=1 to m do begin a[i,j]:=random(30); write(a[i,j]:4); end; end; writeln; for j:=1 to m do begin s:=0;k:=0; for i:=1 to n do if a[i,j]mod 2<>0 then begin s:=s+a[i,j]; k:=k+1; end; if k<>0 then begin c:=c+1; b[c]:=s/k; end; end; for i:=1 to c do write(b[i]:8:2); readkey; end.
Тут R - внешний радиус кольца r - внутренний радиус Кстати в самом Турбо паскале обзначения R и r не прокатят, он не видит разницы между большими и малыми буквами, т.о. будет воспринимать их как однк переменную. Далее сумма площадей N колец, это нечто эдакое:
Чтобы устроить подобный счет в паскале придется организовать цикл. Таким образом общий алгоритм программы проглядывает в таком порядке 1. Объявить все переменные (Данные) это само собой. 2. Присвоить переменным начальные значения (инициализировать) те, что есть по условию (или просто 0, чтоб потом легче отлаживать) 3.Запросить у пользователя недостающие данные, например N может запрашиваться у пользователя. 4. Организация цикла расчета 5. Вывод результатов.
Теперь разберемся с пунктом 4 Для организации цикла как мне представляется надо будет задействовать 2 такие переменные i, Ssum, Si, Rin, Rout,. Где i - переменная-счетчик, что изменяется от 1 до N, для организации цикла. (Integer целая) Ssum - переменная, в которой будет накапливаться суммарная площадь. (Не помню как паскаль поступает с вновь объявленными переменными, но в начале программы лучше присвоить ей нулевое значение, чтобы там не оказалось случайного мусора) Si - переменная в которой хранится текущая вычисленная площадь. Rin - текущий внутренний радиус. Rout - текущий внешний радиус. Переменные: Ssum, Si, Rin, Rout типа (Real вещественный ) Ну и считаем в следующем порядке Перед началом цикла Ssum:=0 (о чем уже говорилось) далее цикл FOR I:=1 to N Вычислить текущие значения внешнего и внутреннего радиусов
(У нас внутренний радиус не меняется, но более общем случае тут мог, быть расчет) Вычисляем площадь текущего (по счетчику) кольца:
Накапливаем в Ssum суммарную площадь
Далее цикл FOR выполняет такие действия: увеличивает на 1 переменную счетчик I I:=I+1 Сравнивает ее с N, если уходим на "следующий виток" цикла, в противном случае выходим из него. Кстати так можно было организовать цикл типа (Repeat, Until) тогда приращение счетчика надо организовать самому. For делает это сам, если не ошибаюсь.
const
n=5;m=7;
var
a:array[1..n,1..m]of integer;
b:array[1..m]of real;
i,j,k,c:integer;
s:real;
begin
clrScr;
for i:=1 to n do
begin
writeln;
for j:=1 to m do
begin
a[i,j]:=random(30);
write(a[i,j]:4);
end;
end;
writeln;
for j:=1 to m do
begin
s:=0;k:=0;
for i:=1 to n do
if a[i,j]mod 2<>0 then
begin
s:=s+a[i,j];
k:=k+1;
end;
if k<>0 then
begin
c:=c+1;
b[c]:=s/k;
end;
end;
for i:=1 to c do
write(b[i]:8:2);
readkey;
end.
Тут
R - внешний радиус кольца
r - внутренний радиус
Кстати в самом Турбо паскале обзначения R и r не прокатят, он не видит разницы между большими и малыми буквами, т.о. будет воспринимать их как однк переменную.
Далее сумма площадей N колец, это нечто эдакое:
Чтобы устроить подобный счет в паскале придется организовать цикл.
Таким образом общий алгоритм программы проглядывает в таком порядке
1. Объявить все переменные (Данные) это само собой.
2. Присвоить переменным начальные значения (инициализировать) те, что есть по условию (или просто 0, чтоб потом легче отлаживать)
3.Запросить у пользователя недостающие данные, например N может запрашиваться у пользователя.
4. Организация цикла расчета
5. Вывод результатов.
Теперь разберемся с пунктом 4
Для организации цикла как мне представляется надо будет задействовать 2 такие переменные i, Ssum, Si, Rin, Rout,. Где
i - переменная-счетчик, что изменяется от 1 до N, для организации цикла. (Integer целая)
Ssum - переменная, в которой будет накапливаться суммарная площадь. (Не помню как паскаль поступает с вновь объявленными переменными, но в начале программы лучше присвоить ей нулевое значение, чтобы там не оказалось случайного мусора)
Si - переменная в которой хранится текущая вычисленная площадь.
Rin - текущий внутренний радиус.
Rout - текущий внешний радиус.
Переменные: Ssum, Si, Rin, Rout типа (Real вещественный )
Ну и считаем в следующем порядке
Перед началом цикла
Ssum:=0 (о чем уже говорилось)
далее цикл
FOR I:=1 to N
Вычислить текущие значения внешнего и внутреннего радиусов
(У нас внутренний радиус не меняется, но более общем случае тут мог, быть расчет)
Вычисляем площадь текущего (по счетчику) кольца:
Накапливаем в Ssum суммарную площадь
Далее цикл FOR выполняет такие действия:
увеличивает на 1 переменную счетчик I
I:=I+1
Сравнивает ее с N, если уходим на "следующий виток" цикла, в противном случае выходим из него.
Кстати так можно было организовать цикл типа (Repeat, Until) тогда приращение счетчика надо организовать самому. For делает это сам, если не ошибаюсь.