Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите перевести код в Паскаль

71K
12 мая 2011 года
Zozoshik
2 / / 12.05.2011
Вообщем,ребят,такое дело. Есть задача выполненная в qbasic, но по-моему там код не совсем правильный. Так вот нужно сделать в Паскальке ее. Начал разбираться, вроде что-то начало получаться, но до конца не могу довести. Проблема в том, что массивы одномерные и минимум и максимум у меня получается найти только во всем массиве ;( Буду очень благодарен Вам за помощь.
з.ы. Сделать с подпрограммой нужно
Собственно говоря вот текст задачи:
В массиве А(60), В(80) и С(100) найти максимум и минимум значения в каждом десятке элементов сформировать отдельные массивы и распечатать их и заданные массивы.

Код в QBasic:
Код:
CLS
DIM c(100), maxim(10), minim(10)
PRINT "massiv a(60)";
n = 60
GOSUB 1
PRINT "massiv b(80)";
n = 80
GOSUB 1
PRINT "massiv c(100)";
n = 100
GOSUB 1
END

1 :
PRINT
FOR i = 1 TO n
c(i) = INT(RND * 500 - 250)
IF i MOD 10 = 0 THEN
PRINT USING "#####"; c(i); : PRINT
ELSE
PRINT USING "#####"; c(i);
END IF
NEXT i
max = c(1)
min = c(1)
FOR i = 2 TO n
IF i MOD 10 <> 0 THEN
IF c(i) > max THEN max = c(i)
IF c(i) < min THEN min = c(i)
ELSE
IF c(i) > max THEN max = c(i)
IF c(i) < min THEN min = c(i)
j = i / 10
maxim(j) = max
minim(j) = min
PRINT : PRINT "stroka"; j; "max="; maxim(j); ,
PRINT " stroka"; j; "min="; minim(j);
IF i < n THEN
max = c(i + 1)
min = c(i + 1)
END IF
END IF
NEXT i
PRINT : PRINT
RETURN


Мне утверждают, что код верен, но если проверять его, то там не формируются новые массивы.Имхо.

И мой код в Pascal:
Код:
program ind3;
uses crt;
var i, max,min: integer;
procedure mass(k:integer);
var a: array [1..100] of integer;

begin
for i := 1 to k do begin
a:=random(500)-250;
If i mod 10 = 0 then writeln(a:5);
If i mod 10 <> 0 then write(a:5);

end;
max := a;
min:=a;
For i := 1 to k do begin
If i mod 10 <> 0 then If a> max then max:=a;
If i mod 10 <> 0 then If a < min then min:=a;

end;
writeln (' max=',max);
 writeln(' min=',min);
end;

begin
clrscr;
writeln;
writeln(' a(60)');
mass(60);
writeln;
writeln(' b(80)');
mass(80);
writeln;
writeln(' c(100)');
mass(100);

end.


Обращаюсь к Вам, так как паскаль не изучал, учу Сишарп и очень им доволен.
61K
13 мая 2011 года
[KIM]
1 / / 03.06.2010
Для того что бы работала функция random нужно активировать генератор случайных чисел.Перед циклом где ты заполняешь массив напиши Randomize;
62K
13 мая 2011 года
(zom!k
36 / / 30.12.2010
в паскале чтобы включить генератор случайных чисел надо - юзать randomize..
а в бэйсике вроде RANDOMIZE TIMER, тогда при каждом запуске числа будут разными
71K
13 мая 2011 года
Zozoshik
2 / / 12.05.2011
не правильно поняли, мне нужно еще сформировать массивы новые из минимумов и максимумов, рандомы и рандомайзы я знаю

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог