Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2013, 18:50   #1
arnold
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 21
По умолчанию procedure

Код:
procedure up(hz:integer);
	begin
		hz:=5;
		while hz<1600 do begin
			sound(hz);
			delay(20);
			hz:=hz+5;
		end;
	end;
procedure down(hz:integer);
	begin
		hz:=1600
		while hz>5 do begin
			sound(hz);
			delay(20)
			hz:=hz-5;
		end;
	end;
USES CRT;
begin up;delay(300);down;up;delay(300);down;end.
Что я не так написал, не запускается программа, выбивает ошибку.
arnold вне форума Ответить с цитированием
Старый 17.02.2013, 18:57   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,304
По умолчанию

Код:
procedure up(hz:integer);
begin
   hz:=5;
   ...
   ...
Так нельзя. Переменная hz - передается по значению. Почитай тему о передаче параметров.



Как-то так ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 17.02.2013, 19:02   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Что я не так написал
Ты код не так написал )
Цитата:
не запускается программа
Ужосс...
Цитата:
выбивает ошибку.
Закономерность.

А теперь подумай внимательно чего ты нам не рассказал для получения правильного ответа!

P.S. USES CRT; вообще-то принято писать самой первой строкой в исходнике.

Цитата:
Так нельзя. Переменная hz - передается по значению.
С чего бы это? Другое дело что автор описав параметр, просто напросто его не передает:
Цитата:
begin up;delay(300);down;
А надо как-то так:
Код:
begin up(100);delay(300);down(100);
Но лучше так:
Код:
procedure up; var hz:integer
	begin
		hz:=5;
		while hz<1600 do begin
			sound(hz);
			delay(20);
			hz:=hz+5;
		end;
	end;
I'm learning to live...

Последний раз редактировалось Stilet; 17.02.2013 в 19:05.
Stilet вне форума Ответить с цитированием
Старый 20.02.2013, 15:39   #4
arnold
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ты код не так написал )

Ужосс...

Закономерность.

А теперь подумай внимательно чего ты нам не рассказал для получения правильного ответа!

P.S. USES CRT; вообще-то принято писать самой первой строкой в исходнике.


С чего бы это? Другое дело что автор описав параметр, просто напросто его не передает:
А надо как-то так:
Код:
begin up(100);delay(300);down(100);
Но лучше так:
Код:
procedure up; var hz:integer
	begin
		hz:=5;
		while hz<1600 do begin
			sound(hz);
			delay(20);
			hz:=hz+5;
		end;
	end;
Написал программу
Код:
procedure up; var hz:integer;
	begin
		hz:=5;
		while hz<1600 do begin
			sound(hz);
			delay(20);
			hz:=hz+5;
		end;
	end;
begin
up(100);
end.
и все равно выбивает ошибку. Использовал turbo pascal
arnold вне форума Ответить с цитированием
Старый 20.02.2013, 15:53   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

ну Вам же сказали, прочитайте про передачу параметров в процедуры/функции..

вот смотрите. Вы описали процедуру up.
Цитата:
Код:
procedure up;
у неё есть параметры?! (ответ: правильно, НЕТ параметров - вы ей параметров не разрешили иметь!)

теперь Вы эту процедуру вызываете:
Цитата:
Код:
up(100);
А что это вы в скобках передаёте в процедуру?! Параметер?! Какой параметер?! В процедуре НЕТ никаких параметров!

в вешем случае нужно вызывать просто
Код:
up;
без параметров!



p.s. очень рекомендую поставить в конце программы вызов процедуры nosound;
иначе спикер вас задолбает!

Последний раз редактировалось Serge_Bliznykov; 20.02.2013 в 15:56.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.02.2013, 16:09   #6
arnold
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 21
По умолчанию


По моему у меня глюканутый паскаль

Последний раз редактировалось arnold; 20.02.2013 в 16:20.
arnold вне форума Ответить с цитированием
Старый 20.02.2013, 16:24   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

во первых, на скриншоте не видно, на какой строчке выдалась ошибка (компилятор пишет, что не нашёл используемый Вами идентификатор и подсчвечивает этот самый идентификатор).
А во-вторых, рискну предположить, что он не знает, что такое sound (или delay
потому как Вы забыли указать модуль, где это идентификатор описан.

напишите вначале программы
Цитата:
uses Crt;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.02.2013, 16:33   #8
arnold
Пользователь
 
Регистрация: 24.09.2011
Сообщений: 21
По умолчанию

Большое спасибо
arnold вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Procedure ALABAMA Паскаль, Turbo Pascal, PascalABC.NET 3 20.05.2010 21:06
procedure Insert keen86nv Помощь студентам 2 01.04.2010 17:37
не работает procedure korand Общие вопросы Delphi 8 09.03.2010 21:18
procedure! please! help! NeAlSe Помощь студентам 2 15.06.2008 15:38
function procedure Toxa Microsoft Office Access 1 28.11.2007 18:32