Помощь - Поиск - Пользователи - Календарь
Полная версия: Ошибочка в компилировании
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
milk

Program proceduri1;
uses crt;
Const m=15;
procedure zap(k:integer; var f:array of real);
Var i:integer;
begin
for i:=0 to k-1 do
f[i]:=200*random-100
end;
procedure vivod(k:integer; var f:array of real);
Var i:integer;
begin
for i:=0 to k-1 do
write(f[i],' ')
end;
procedure nax(k:integer; f:array of real; var r:integer);
Var i:integer;
Begin
r:=0;
for i:=0 to k-1 do
if f[i]<0 then r:=r+1
end;
procedure umnog(k:integer; r:real; var f:array of real);
var i:integer;
Begin
for i:=0 to k-1 do
f[i]:=f[i]*r
end;
Var a,b,c:array[1..m+5] of real;
x:real;
k1,k2,k3:integer;
Begin
clrscr;
Randomize;
write('vvedite x '); readln(x);
zap(m,a); writeln('massiv A'); vivod(m,a); writeln;
zap(m,b); writeln('massiv B'); vivod(m,b); writeln;
zap(m+5,c); writeln('massiv C'); vivod(m+5,c); writeln;
nax(m,a,k1); nax(m,b,k2); nax(m+5,c,k3);
writeln('kol-vo otriz v masA= ',k1);
writeln('kol-vo otriz v masB= ',k2);
writeln('kol-vo otriz v masC= ',k3);
if (k1<k2) and (k1<k3) then begin umnog(m,x,a); vivod(m,a) end else
if (k2<k1) and (k2<k3) then begin umnog(m,sqr(x),b); vivod(m,b) end else
if (k3<k1) and (k3<k2) then begin umnog(m+5,x/10,c); vivod(m+5,c) end else
writeln('kol-va ravni');
readln
End.

(не считывает заданный кортеж c[1..m+5], а задает его из первой процедуры, в следствие чего не компилируется.. Посмотрите правильность пожалуйста. Буду очень признательна
volvo
Цитата
в следствие чего не компилируется..
Все нормально компилируется. И даже работает...
milk
Странно!( У меня ABC паскаль и не работает...
Мб попробовать на Турбо?
p.s.если есть для win7 дайте ссылочку
Lapp
Цитата(milk @ 6.01.2011 17:36) *
Странно!( У меня ABC паскаль и не работает...
как обычно..

Цитата
Мб попробовать на Турбо?
p.s.если есть для win7 дайте ссылочку
Не бывает Turbo для W7.
Скачай FreePascal. Кстати, его с полным правом можно назвать преемником Turbo.
http://freepascal.org/download.var
Жми "Win32, Win64 and WinCE "
milk
Цитата(Lapp @ 6.01.2011 23:58) *

Не бывает Turbo для W7.
Скачай FreePascal. Кстати, его с полным правом можно назвать преемником Turbo.
http://freepascal.org/download.var
Жми "Win32, Win64 and WinCE "

Спасибо :]
volvo
Цитата
Странно!( У меня ABC паскаль и не работает...
Чтобы оно работало в PascalABC.NET - надо сделать так:

procedure zap(k:integer; var f:array of real);
begin
// добавляем сюда выделение памяти под массив
f := new real[k];

// и только теперь - заполняем.
for i:integer := 0 to k-1 do
f[i]:=200*random-100
end;

// Ну, и сами A, B и C надо по другому описывать:
var
A, B, C: array of real;


Тогда все работает, но только в ABC.NET, у него очень своеобразный синтаксис, больше нигде работать не будет:
Нажмите для просмотра прикрепленного файла

(да, я там еще закомментировал uses crt и вызов очистки экрана)
milk
Цитата(volvo @ 7.01.2011 1:43) *


Тогда все работает, но только в ABC.NET, у него очень своеобразный синтаксис, больше нигде работать не будет:
Нажмите для просмотра прикрепленного файла

(да, я там еще закомментировал uses crt и вызов очистки экрана)

Сдавать программы надо в TurboPascal, думаю если там работает, то претензий у препода не возникнет, но за старания большое спасибо.. Думаю программа не только мне пригодится"
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.