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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2016, 18:01   #1
richard.hendricks
 
Регистрация: 16.02.2016
Сообщений: 6
По умолчанию Применение функций в главной программе

Проблема в том, что в книге, по которой я учусь ("Песни о Паскале") нигде не описывается, как применять функции в главной программе. И мне всегда PascalABC выдает такую ошибку : "Неверное число параметров функции". Я так понял, что указывать нужно не один параметр, когда пишешь название функции в главной программе. Расскажите, что еще нужно указывать в скобках.
richard.hendricks вне форума Ответить с цитированием
Старый 20.02.2016, 18:24   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

паскаль очень строгий язык: что принимаешь то и должен передавать
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 20.02.2016, 18:38   #3
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Рекомендую по функциям/процедурам читать справочную информацию. В них чётко указано, сколько параметров ожидает функция. Количество передаваемых (фактических) параметров должно совпадать с количеством ожидаемых (формальных) параметров.
Вадим Мошев вне форума Ответить с цитированием
Старый 20.02.2016, 19:14   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Рекомендую по функциям/процедурам читать справочную информацию. В них чётко указано, сколько параметров ожидает функция. Количество передаваемых (фактических) параметров должно совпадать с количеством ожидаемых (формальных) параметров.
Ага, даже помню, в детстве кодил в турбо-паскале-7.0, даже там была исчерпывающая справка по всем функциям и процедурам, в том числе и из дополнительных либ. И мне даже в 5 классе хватало знаний инглиша прочитать чо там написано.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 20.02.2016, 21:38   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

автор, тебе сҡолько лет?
честно?
посмотрел я эту книжку...

Напоминает «переписку Энгельса с Каутским».

Фтопку!


скачай укради купи себе более других хороших книжек!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.02.2016, 22:10   #6
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 472
По умолчанию

Нормальная книжка. В самый раз для тех, кто первый раз сталкивается с необходимостью сделать программку, а опыта нет и подсказать некому. А в школе SchoolPak, и непонятно всё.

richard.hendricks, приведите код с ошибкой.
FPaul вне форума Ответить с цитированием
Старый 20.02.2016, 23:22   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Нормальная книжка.
Да?... Ну ладно. Ну и хорошо.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 21.02.2016, 08:41   #8
richard.hendricks
 
Регистрация: 16.02.2016
Сообщений: 6
По умолчанию

Скорее всего, здесь полно других ошибок.
Код:
uses crt;
var F: text;
S: string;
b: integer;
a:integer;
function Strings (arg:string; var b: integer; a:integer): integer;
begin
 b:=0;
 for a:=1 to Length(arg) do begin
 if arg[a]=#10 then b:=b+1;
 writeln (b);
 end;
 end;
begin
Assign(F, 'input.txt'); 
Reset(F); 
repeat
if Eof(F) then Break; 
Readln(F, S); 
Writeln(S); 
until false;
Strings (F) ;
Close(F); 
Readln; 
end.
richard.hendricks вне форума Ответить с цитированием
Старый 21.02.2016, 08:58   #9
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Смотри, какие параметры принимает функция:
Код:
function Strings (arg:string; var b: integer; a:integer): integer;
arg типа string, переменные a и b типа integer. При этом, функция ещё и возвращает значение типа integer.

Что делаешь ты. Мало того, что в функцию передаётся только один параметр Strings (F); Так он ещё и совершенно другого типа var F: text;
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 22.02.2016, 04:34   #10
ProBeginner
Форумчанин
 
Регистрация: 22.02.2016
Сообщений: 145
По умолчанию Помощь студентам Pascal

Код:
Strings (F) ;
Вы вместо требуемого списка аргументов передаёте указатель на файл.

Вообще, такие вещи как "BASIC для Носорогов", "Виндуз для идиотов" или наверное "Песни о Паскале", как правило являются профанацией образования.

Поспрашайте лучше у знакомых любую постсовковую книжку 90-х годов с Turbo Pascal-ем эдак 3-5 версии. Их и читать легче, нет бреда и потока сознания аффтора, и методически сложены адекватно, можно изучать с нуля.
Возьму в кредит мильён по 100% годовых на сто лет.
ProBeginner вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Применение функций в работе с последовательностями чисел (разные системы исчесления) Namikan Общие вопросы C/C++ 4 04.01.2015 19:28
Применение рекурсивных функций Jalgas-xan Паскаль, Turbo Pascal, PascalABC.NET 2 18.01.2013 16:58
Применение нескольких функций caen21rus Общие вопросы C/C++ 6 01.06.2009 18:23
Применение нескольких функций caen21rus Общие вопросы C/C++ 3 28.05.2009 15:35