IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Ошибочка в компилировании, Не компилирует прогу.. Почему-то не считает кортеж c [1..m+5]
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 9
Пол: Женский
Реальное имя: Elen

Репутация: -  0  +



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], а задает его из первой процедуры, в следствие чего не компилируется.. Посмотрите правильность пожалуйста. Буду очень признательна


--------------------
Я бесценна! Для всего остального есть Master card
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
Странно!( У меня 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 и вызов очистки экрана)
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.11.2025 15:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name