Ошибка паскаль неверное количество фактических параметров

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
program proga;
uses crt;
const m=8; n=10; f=15;
type raz=1..f;
     mas=array[raz] of real;
var x,y,z,w,x1,y1,z1,w1:mas;
    m1,n1,f1,i:integer;
procedure nmas(a:mas;n:integer;var y:mas; var j:integer);
var i:integer;
begin
j:=0;
for i:=1 to n do
if a[i]>0 then
  begin
   j:=j+1;
   y[j]:=a[i];
  end;
if j=0 then writeln('Положительных элементов нет')
else writeln('Массив положительных элементов');
for i:=1 to j do
write(y[i]:0:2,' ');
writeln;
end;
begin
writeln('Massiv X');
for i:=1 to m do
 begin
  x[i]:=4*sqr(i)-9*(5-i);
  write(x[i]:0:2,' ');
 end;
writeln;
nmas(x,m,x1,m1);
writeln('Massiv Y');
for i:=1 to m do
 begin
  y[i]:=6*sin(2*i)+5*exp(i-5);
  write(y[i]:0:2,' ');
 end;
writeln;
nmas(y,m,y1,m1);
writeln('Massiv Z');
for i:=1 to n do
 begin
  z[i]:=6*(i-4)+5*sqr(sin(1.5*i));
  write(z[i]:0:2,' ');
 end;
writeln;
nmas(z,n,z1,n1);
writeln('Massiv W');
for i:=1 to f do
 begin
  w[i]:=6*ln(0.1*i)+10*cos(i-2.5)*cos(i-2.5)*cos(i-2.5);
  write(w[i]:0:2,' ');
 end;
writeln;
nmas(w,f,w1,f1);
end.

Задача: посчитать экстремумы функции итерационным способом.
В строке:
writeln(‘Минимальный элемент f(x): X = ‘,iter1);
выбивает ошибку.
Подскажите пожалуйста как устранить

Uses Crt;
Const dx=0.01;
var
x0,xn,x,y:real;
integ:real;
function f(x:real):real;
begin
result:=sin(x)-cos(2*x);
end;
function iter1(x0,xn:real):real;
begin
y:=f(x0);
while x0

xn do
begin
x0:=x0+dx;
if f(x0)> y then
begin
iter2:=f(x0);
end; end;

begin
clrscr;
begin
writeln(‘Введите нижнюю границу’); readln(x0);
writeln(‘Введите верхнюю границу’); readln(xn);
writeln(‘ Итерационный вариант: ‘);
writeln(‘Минимальный элемент f(x): X = ‘,iter1);
writeln(‘Максимальный элемент f(x): X =’,iter2);
readln; end;
end.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
program proga;
uses crt;
const m=8; n=10; f=15;
type raz=1..f;
     mas=array[raz] of real;
var x,y,z,w,x1,y1,z1,w1:mas;
    m1,n1,f1,i:integer;
procedure nmas(a:mas;n:integer;var y:mas; var j:integer);
var i:integer;
begin
j:=0;
for i:=1 to n do
if a[i]>0 then
  begin
   j:=j+1;
   y[j]:=a[i];
  end;
if j=0 then writeln('Положительных элементов нет')
else writeln('Массив положительных элементов');
for i:=1 to j do
write(y[i]:0:2,' ');
writeln;
end;
begin
writeln('Massiv X');
for i:=1 to m do
 begin
  x[i]:=4*sqr(i)-9*(5-i);
  write(x[i]:0:2,' ');
 end;
writeln;
nmas(x,m,x1,m1);
writeln('Massiv Y');
for i:=1 to m do
 begin
  y[i]:=6*sin(2*i)+5*exp(i-5);
  write(y[i]:0:2,' ');
 end;
writeln;
nmas(y,m,y1,m1);
writeln('Massiv Z');
for i:=1 to n do
 begin
  z[i]:=6*(i-4)+5*sqr(sin(1.5*i));
  write(z[i]:0:2,' ');
 end;
writeln;
nmas(z,n,z1,n1);
writeln('Massiv W');
for i:=1 to f do
 begin
  w[i]:=6*ln(0.1*i)+10*cos(i-2.5)*cos(i-2.5)*cos(i-2.5);
  write(w[i]:0:2,' ');
 end;
writeln;
nmas(w,f,w1,f1);
end.

IPB

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

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

> Помогите новичку решить простенькую задачку)

сообщение 17.09.2011 13:07

Сообщение
#1


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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


Задача: Напишите программу, которая выдает сообщение в текстовое окно.Координаты окна и координаты для сообщения вводиться с клавиатуры.Цвет экрана и цвет символов задайте с помощью датчика случайных чисел.

program okno;
uses Crt;
var
A, B, X, Y, K, L:integer;
begin
TextColor(A);
TextBackGround(B);
ClrScr;
Randomize;
A:=Random(16);
B:=Random(16);
writeln('Введите координаты окна');
readln(X, Y);
Window(X, Y);
writeln('Введите координаты сообщения');
GotoXY(K, L);
read(K, L);
writeln ('Задача решена');
end.

Пишу в программе Pascal ABC..В конце программы я уверен написано совсем не то,что нужно,там я совсем запутался…Подскажите пожалуйста!

Сообщение отредактировано: SpeedFire — 17.09.2011 13:22

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

IUnknown

сообщение 17.09.2011 13:31

Сообщение
#2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Цитата

Пишу в программе Pascal ABC.Она ругается на процедуру window.(Ошибка: неверное количество фактических параметров)

Какая разница где? Процедура Window всегда принимает 4 параметра, а не 2 (разница — только в смысле параметров, скажем, в Турбо Паскале подразумеваются координаты X и Y левого верхнего и правого нижнего окна, а в PascalABC — координаты (X, Y) верхнего левого угла и ширина/высота).

Ну, а вообще — не самая хорошая идея писать программы для PascalABC, использующие модуль CRT… Тот компилятор, который был написан не для .NET, уже давно не поддерживается, последние версии компилятора написаны именно под .NET, и программу, написанную с использованием CRT просто не удастся отладить, потому что запустить ее в режиме отладки PascalABC не даст. Так что тут надо подумать, продолжать пользоваться PABC и мучаться со старым модулем (даже если программа успешно откомпилируется — я совсем не уверен, что она будет адекватно себя вести), или брать какой-то другой компилятор.

P.S. Не надо в самом начале делать

TextColor(A);
TextBackGround(B);
ClrScr;

, это приведет к тому, что и цвет фона и цвет выводимых символов будут черными (и A и B автоматически инициализируются нулем, а это именно черный цвет), и ты элементарно ничего не увидишь. Либо установи какие-то конкретные цвета, либо не меняй ничего вообще.

Сообщение отредактировано: IUnknown — 17.09.2011 13:32

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

SpeedFire

сообщение 17.09.2011 13:57

Сообщение
#3


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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


C window разобрался!Просто учебник отсканированый,я думал там точка,а там запятая!)Теперь понятно, спасибо
IUnknown,сейчас попробую дописать программу

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

SpeedFire

сообщение 17.09.2011 14:23

Сообщение
#4


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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


program sdfl;
uses crt;
var
A, B, W, X, Y, Z, O, P : integer;
begin
Randomize;
A:=Random(16);
B:=Random(16);
write('Введите координаты окна:');
readln(W, X, Y, Z);
window(W, X, Y, Z);
write ('Введите координаты сообщения:');
readln(O,P);
GotoXY(O,P);
write('Задача решена!');
TextColor(A);
TextBackGround(B);
ClrScr;
end.

Вот написал все получилось, кроме конечного сообщения «задача решена!»,оно почему то не появляется.

Добавлено через 9 мин.
Получилось написать «задача решена»,поставил readln после строчки write(‘Задача решена’);
НО теперь цвета не работают :D

Сообщение отредактировано: SpeedFire — 17.09.2011 14:26

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

IUnknown

сообщение 17.09.2011 14:34

Сообщение
#5


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Делаешь так:

program sdfl;
uses crt;
var
A, B, W, X, Y, Z, O, P : integer;
begin
//Randomize;
//A:=Random(16);
//B:=Random(16);
write('Введите координаты окна:');
readln(W, X, Y, Z);
window(W, X, Y, Z);
write ('Введите координаты сообщения:');
readln(O,P);
GotoXY(O,P);
write('Задача решена!');
//TextColor(A);
//TextBackGround(B);
//ClrScr;
end.

, компилируешь, жмешь Shift+F9 (чтоб запустить), вводишь координаты, и внимательно читаешь ответ программы. А теперь еще раз прочитай, что я тебе написал выше, особенно во втором абзаце. smile.gif

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

SpeedFire

сообщение 17.09.2011 14:57

Сообщение
#6


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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


Прикрепленное изображение

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

IUnknown

сообщение 17.09.2011 15:34

Сообщение
#7


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Так все-таки, PascalABC или FreePascal? С FPC проблем как раз нет, тут все будет работать как положено:

uses Crt;
var
X1, X2, Y1, Y2,
pX1, pY1 : Integer;
begin
ClrScr;
write ('Введите координаты окна:');
ReadLn (X1, Y1, X2, Y2);
write ('Введите координаты сообщения:');
ReadLn (PX1, PY1);

Window (X1, Y1, X2, Y2); // Создаем окно
Randomize;

TextColor (Random (15) + 1); // Не черный цвет текста
TextBackGround (Random (7) + 1); // Не черный цвет фона
ClrScr; // Очищаем ОКНО

GotoXY (X1, Y1); // и внутри окна выводим сообщение
write ('Задача решена!');
readln;
Window (1, 1, 80, 25); // Восстанавливаем нормальное окно
end.

P.S. Откуда у тебя там SVN взялся? Ты откуда FPC качал?

Сообщение отредактировано: IUnknown — 17.09.2011 15:34

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

SpeedFire

сообщение 17.09.2011 15:52

Сообщение
#8


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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


После того как ты сказал что

Цитата

не самая хорошая идея писать программы для PascalABC, использующие модуль CRT…

скачал Free Pascal отсюда
что такое svn понятия не имею smile.gif
За программу спасибо,теперь все понятно)

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

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

Пользователей: 0

500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают

Связь с администрацией: bu_gen в домене octagram.name

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

SunSerega opened this issue

Jan 12, 2020

· 6 comments

Comments

@SunSerega

type
  t1 = class end;
  
function f1(self: t1; x: integer): integer; extensionmethod;
begin
  Writeln(self);
  Result := x.Println;
end;

type
  t2 = class(t1)
    procedure test;
    begin
      writeln(f1(4));
      writeln(self.f1(4)); // так работает
    end;
  end;

begin
end.

@ibond84
ibond84

changed the title
extensionmethod криво работает в инициализаторе поля

Вызов метода расширения внутри наследника класса не работает, если вызывать не через self

Jan 12, 2020

@ibond84
ibond84

changed the title
Вызов метода расширения внутри наследника класса не работает, если вызывать не через self

Неверное количество параметров функции при вызове метода расширения внутри наследника класса не через self

Jan 12, 2020

@SunSerega

Copy link


Contributor

Author

@ibond84 а разве можно вызывать через self? self при инициализации полей вообще не видит.

@ibond84

Инициализаторы полей здесь непричем. Здесь не работает вызов метод расширения без self.

@miks1965

У нас методы расширения вызываются только через переменную. Считайте это особенностью языка.

@SunSerega

Copy link


Contributor

Author

Ну ошибка всё равно неправильная. Надо давать что то типа «неизвестное имя», раз f1 не должно быть видно.

@SunSerega

Copy link


Contributor

Author

И вообще, это @ibond84 так код изменил. Мой изначальный код не выглядит как будто это должно работать:

type
  t1 = class end;
  
function f1(self: t1; x: integer): integer; extensionmethod;
begin
  Writeln(self);
  Result := x.Println;
end;

type
  t2 = class(t1)
//    n1 := f1(5); //Ошибка: Неверное количество параметров функции
    n2 := f1(nil, 5); // работает, хотя не должно
  end;

begin
  new t2; // выводит nil и 5
end.

Он как раз показывает что неправильная ошибка при f1(5) + то что f1(nil, 5) не должно работать.

@miks1965

miks1965

added a commit
that referenced
this issue

Jun 26, 2020

@miks1965

zub писал(а):А почему в procedure x(a:integer;b:real); не обявить все параметры и неиспользовать их? если это не ваша процедура, запускать ее через прокладку с объявлеными всеми параметрами

Потому-что процедуру объявляет конечный пользователь моего проекта, а я ее только вызываю. Говорить юзеру «Объяви процедуру со 100500 параметрами, потомучто» — не есть правильно. И я не знаю, сколько конкретно параметров объявит юзер. Поэтому максимум что я фиксирую, это устанавливаю верхнюю границу кол-ва параметров и требую для них всех тип variant. Либо только один параметр в виде константного массива (с этим вопросов нет, все работает штатно). После чего юзер передет мне указатель на эту процедуру.

Когда приходит время вызывать юзеровскую процедуру, то вызываю ее с максимальным кол-м аргументов, вне зависимости, сколько аргументов в ней было заявлено. И, блин, это работает! Я не верил в это, когда проверял, ждал проблем со стеком, сегфолта или утечек памяти, но работает все без проблем, debian 8,9, altlinux 7,8, fpc 2.6.4. 3.0.0, 3.0.2.

Вопрос только в одном: не эксплуатирую-ли я некий редкий баг, который с успехом и фанфарами исправят в новой версии fpc, поломав мне весь код?

serbod писал(а):Подумайте получше, что важнее — удобно при разработке или надежно при эксплуатации. Потратить минуты при разработке сейчас или потратить часы при отладке потом. Не исключаю, что у вас сугубо одноразовый демонстрационный проект, вроде тестового задания, где важнее сделать быстро, чем качественно.

О надежности и думаю, поэтому и поднял тут тему. И в релиз проекта эту фичу не запущу, пока не найду подтверждения, что это безопасно. Либо не найду и тогда откачу до предыдущей, крайне многословной версии. Хоть и не хочется.

Неверное количество параметров процедуры

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Неверное количество параметров процедуры
Помогите! На строке с командой «close(f)» мне выдаёт ошибку: «Неверное количество параметров.

Неверное число параметров процедуры
uses graphABC; var x0,y0,d,n,gd,gm,i,x,y:integer; begin d:=10; gd:=0; write(‘Kolichestvo.

Неверное число параметров процедуры
Проблема:program zavd_9_1; uses crt; const N=7; type TMatrix=array of integer; var.

Ну а чему вы удивляетесь? Посмотрите на объявление этой процедуры и ещё раз на текст ошибки. Параметров в объявлении 2, а в вызове 0, то есть неправильное кол-во.

Добавлено через 1 минуту
Я так понимаю, вам надо было чтоб у процедуры внутри были свои локальные переменные. Тогда сделайте так:

Sun Serega, Спасибо, работает

Добавлено через 15 минут
Sun Serega, Теперь он не может файл найти, хотя весь путь описан правильно

Ошибка времени выполнения. Файл ‘C:UsersUserDesktopDashsUjdyj’ не найден

Зайдите в:
Панель управления>>(мелкие значки) Параметры проводника>>Вид

Прокрутите вниз, там увидите настройку:
Скрывать расширения для зарегестрированных типов файлов
Вот отрубите её нафиг.

По моей идее он должен вместо 1 рисовать блок, а вместо 0 ничего не рисовать, ну либо синий блок. В итоге вместо 0 он рисует, а 1 он не видит. Что делать?

Вложения

Неверное количество фактических параметров паскаль Ujdyj.txt (1.2 Кб, 4 просмотров)

WinForms может помочь избавится от некоторой кривоты (как то, что нельзя заранее заставить окно запустится в первоэкранном режиме, в GraphABC его можно менять только после запуска).

Источник

Неверное количество параметров в подпрограмме

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Неверное количество параметров процедуры
Помогите! На строке с командой «close(f)» мне выдаёт ошибку: «Неверное количество параметров.

Неверное количество фактических параметров паскальОшибка. Неверное количество параметров функции
Вышла такая ошибка в строке 13 (Неверное кол-во параметров функции); Учусь работать с функциями.

Использовать устаревшие конструкции Паскалей вперемешку с PABC.Net выглядит так себе кстати.
а ещё свой код заключайте в теги конкретного языка, что бы было видно номера строк

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Неверное количество фактических параметров
Program laba6; var tip:array of string; har:array of string; ind:array of string; dvi:array of.

Неверное количество фактических параметров
неверное количество фактических параметров pascal abc program p4; const n=5; type mas=array.

Ошибка: неверное количество фактических параметров
Помогите пожалуйста! Не получается. Я не понимаю ничего в паскаль а делать нужно. Дважды.

Неверное количество фактических параметров паскальОшибка: неверное количество фактических параметров
uses crt; var ch1,ch2: char; k: integer; const glasnye = ; begin clrscr;.

Ошибка: неверное количество фактических параметров
Я не пойму что здесь не так! в 42 строчке эта самая ошибка! program proga; const m=8; n=10;.

Источник

(179) : Неверное количество параметров функции

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Неверное количество фактических параметров паскальДля различных значений n проверить справедливость формулы: 1³+3³+5³+. +(2n-1)³=n²(2n²-1)
для различных значений n проверить справедливость формулы: 13+33+53+. +(2n-1)3=n2(2n2-1)

Неверное количество фактических параметров
function dv(x:integer):string; var a,b:string; begin a:=’0′;b:=’1′; while x<>0 do.

Неверное количество фактических параметров
неверное количество фактических параметров pascal abc program p4; const n=5; type mas=array.

Решение

Приведите полный код программы. Если файл уже создан, то приложите его в тему.

почему мне не удается закрыть фаил? простите если надоел вам, но мне очень трудно дается программирование. Я смотрю статьи, а в них не написаны эти ошибки. И вы хорошо объясняете, спасибо

Добавлено через 7 минут
я исправил это передвинув close чуть выше одного end

Добавлено через 10 минут
Я все написал, но в конце у меня пишет ошибку Program2.pas(175) : Встречено ‘.’, а ожидалось ‘;’
Хотя я все закрыл. Из-за чего происходит эта ошибка и как ее исправть?

Добавлено через 7 минут
Я исправил ошибку выше и теперь у меня пишет ошибку Program2.pas(139) : Неверное количество параметров функции
Что написать в этой строчке?

Источник

Ошибка. Неверное количество параметров функции

Вышла такая ошибка в строке 13 (Неверное кол-во параметров функции); Учусь работать с функциями, сам пока не нашел ответа на интересующий вопрос.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

График функции и ошибка «Неверное число параметров функции»
Program aaa; Uses GraphABC; Var x,y:integer; Begin For x:=0 to 360 do Begin Y:=Round(.

Неверное количество параметров процедуры
Помогите! На строке с командой «close(f)» мне выдаёт ошибку: «Неверное количество параметров.

Решение

Как видно, функция в данном случае улучшает чтение программы, а не усложняет его.

Более того, данную программу можно ещё упростить:

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Неверное число параметров функции
В чем может быть дело? исправьте пожалуйста function z(x,a,b,x1,x2:real):real; var t,w:real;.

Ошибка в коде «неверное число параметров процедуры»
Выдает ошибку в 29 строке: «неверное число параметров процедуры». Помогите пожалуйста с этой.

Подсчитать количество элементов массива, больших 3 (ошибка: «Неверное число параметров функции»)
Написать программу, которая создает массив из N целых чисел и с помощью функции подсчитывает.

Неверное количество фактических параметров паскаль(179) : Неверное количество параметров функции
<-555555—-функция обработки файла по условию——>function.

Ошибка: неверное количество фактических параметров.
Очень прошу помочь исправить ошибку в моей программе. Program Hord; var xn,xk,eps:real;.

Источник

IPB

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

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

> Помогите новичку решить простенькую задачку)

сообщение 17.09.2011 13:07

Сообщение
#1


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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



Задача: Напишите программу, которая выдает сообщение в текстовое окно.Координаты окна и координаты для сообщения вводиться с клавиатуры.Цвет экрана и цвет символов задайте с помощью датчика случайных чисел.

program okno;
uses Crt;
var
A, B, X, Y, K, L:integer;
begin
TextColor(A);
TextBackGround(B);
ClrScr;
Randomize;
A:=Random(16);
B:=Random(16);
writeln('Введите координаты окна');
readln(X, Y);
Window(X, Y);
writeln('Введите координаты сообщения');
GotoXY(K, L);
read(K, L);
writeln ('Задача решена');
end.

Пишу в программе Pascal ABC..В конце программы я уверен написано совсем не то,что нужно,там я совсем запутался…Подскажите пожалуйста!

Сообщение отредактировано: SpeedFire — 17.09.2011 13:22

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

IUnknown

сообщение 17.09.2011 13:31

Сообщение
#2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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



Цитата

Пишу в программе Pascal ABC.Она ругается на процедуру window.(Ошибка: неверное количество фактических параметров)

Какая разница где? Процедура Window всегда принимает 4 параметра, а не 2 (разница — только в смысле параметров, скажем, в Турбо Паскале подразумеваются координаты X и Y левого верхнего и правого нижнего окна, а в PascalABC — координаты (X, Y) верхнего левого угла и ширина/высота).

Ну, а вообще — не самая хорошая идея писать программы для PascalABC, использующие модуль CRT… Тот компилятор, который был написан не для .NET, уже давно не поддерживается, последние версии компилятора написаны именно под .NET, и программу, написанную с использованием CRT просто не удастся отладить, потому что запустить ее в режиме отладки PascalABC не даст. Так что тут надо подумать, продолжать пользоваться PABC и мучаться со старым модулем (даже если программа успешно откомпилируется — я совсем не уверен, что она будет адекватно себя вести), или брать какой-то другой компилятор.

P.S. Не надо в самом начале делать

TextColor(A);
TextBackGround(B);
ClrScr;

, это приведет к тому, что и цвет фона и цвет выводимых символов будут черными (и A и B автоматически инициализируются нулем, а это именно черный цвет), и ты элементарно ничего не увидишь. Либо установи какие-то конкретные цвета, либо не меняй ничего вообще.

Сообщение отредактировано: IUnknown — 17.09.2011 13:32

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

SpeedFire

сообщение 17.09.2011 13:57

Сообщение
#3


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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



C window разобрался!Просто учебник отсканированый,я думал там точка,а там запятая!)Теперь понятно, спасибо
IUnknown,сейчас попробую дописать программу

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

SpeedFire

сообщение 17.09.2011 14:23

Сообщение
#4


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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



program sdfl;
uses crt;
var
A, B, W, X, Y, Z, O, P : integer;
begin
Randomize;
A:=Random(16);
B:=Random(16);
write('Введите координаты окна:');
readln(W, X, Y, Z);
window(W, X, Y, Z);
write ('Введите координаты сообщения:');
readln(O,P);
GotoXY(O,P);
write('Задача решена!');
TextColor(A);
TextBackGround(B);
ClrScr;
end.

Вот написал все получилось, кроме конечного сообщения «задача решена!»,оно почему то не появляется.

Добавлено через 9 мин.
Получилось написать «задача решена»,поставил readln после строчки write(‘Задача решена’);
НО теперь цвета не работают :D

Сообщение отредактировано: SpeedFire — 17.09.2011 14:26

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

IUnknown

сообщение 17.09.2011 14:34

Сообщение
#5


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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



Делаешь так:

program sdfl;
uses crt;
var
A, B, W, X, Y, Z, O, P : integer;
begin
//Randomize;
//A:=Random(16);
//B:=Random(16);
write('Введите координаты окна:');
readln(W, X, Y, Z);
window(W, X, Y, Z);
write ('Введите координаты сообщения:');
readln(O,P);
GotoXY(O,P);
write('Задача решена!');
//TextColor(A);
//TextBackGround(B);
//ClrScr;
end.

, компилируешь, жмешь Shift+F9 (чтоб запустить), вводишь координаты, и внимательно читаешь ответ программы. А теперь еще раз прочитай, что я тебе написал выше, особенно во втором абзаце. smile.gif

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

SpeedFire

сообщение 17.09.2011 14:57

Сообщение
#6


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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



Прикрепленное изображение

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

IUnknown

сообщение 17.09.2011 15:34

Сообщение
#7


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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



Так все-таки, PascalABC или FreePascal? С FPC проблем как раз нет, тут все будет работать как положено:

uses Crt;
var
X1, X2, Y1, Y2,
pX1, pY1 : Integer;
begin
ClrScr;
write ('Введите координаты окна:');
ReadLn (X1, Y1, X2, Y2);
write ('Введите координаты сообщения:');
ReadLn (PX1, PY1);

Window (X1, Y1, X2, Y2); // Создаем окно
Randomize;

TextColor (Random (15) + 1); // Не черный цвет текста
TextBackGround (Random (7) + 1); // Не черный цвет фона
ClrScr; // Очищаем ОКНО

GotoXY (X1, Y1); // и внутри окна выводим сообщение
write ('Задача решена!');
readln;
Window (1, 1, 80, 25); // Восстанавливаем нормальное окно
end.

P.S. Откуда у тебя там SVN взялся? Ты откуда FPC качал?

Сообщение отредактировано: IUnknown — 17.09.2011 15:34

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

SpeedFire

сообщение 17.09.2011 15:52

Сообщение
#8


Группа: Пользователи
Сообщений: 5
Пол: Мужской
Реальное имя: Евгений

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



После того как ты сказал что

Цитата

не самая хорошая идея писать программы для PascalABC, использующие модуль CRT…

скачал Free Pascal отсюда
что такое svn понятия не имею smile.gif
За программу спасибо,теперь все понятно)

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

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

Пользователей: 0

500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают

Связь с администрацией: bu_gen в домене octagram.name

const
  r = 50;
 
type
  mas = array [1..r] of integer;
 
var
  
  n: integer;
  A1, A2: mas;
 
procedure zamena(var A: mas; n: integer);
var
  i, V, min, m: integer;
 
begin
  m := 1;
  for i := 2 to n do
    if A[i] < A[m] then m := i;
  V := A[m];
  A[m] := A[n];
  A[n] := V;
  
end;
 
procedure Vvod(var A: Mas; n: integer);
var
  j: integer;
begin
  for j := 1 to n do
    a[j] := random(50) - 25;
end;
 
procedure Vivod(var A: Mas; n: integer);
var
  j: integer;
begin
  for j := 1 to n do
    write(a[j]:5);
  writeln;
end;
 
begin
  randomize;
  Write('Введите размерность А1: ');
  readln(n);
  Vvod(a1, n);           {Вызов процедуры ввод}
  Writeln('Массив А1');
  Vivod(a1, n);
  Zamena(a1, n);
  Writeln('Измененный массив А1');
  Vivod(a1, n);
  Write('Введите размерность А2: ');
  readln(n);
  Vvod(a2, n);           {Вызов процедуры ввод}
  Writeln('Массив А2');
  Vivod(a2, n);
  Zamena(a2, n);
  Writeln('Измененный массив А1');
  Vivod(a2, n);
end.

  • Ошибка парктроника accord 8
  • Ошибка паскаль встречено else а ожидался оператор
  • Ошибка парковочный ассистент шкода рапид
  • Ошибка паскаль exitcode 1
  • Ошибка парковочный ассистент тигуан 2020 что делать