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

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

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

> Формирование строки символов, С помощью процедуры
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 56
Пол: Мужской

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


Помогите, пожалуйста, исправить программу!
Процедура, которая выводит строку, состоящую из одинаковых символов. Длина строки и символ являются параметрами процедуры.
Я составил, но он выдает мне символ не тот, что я ввожу, а только тот, что запрагроммирован в самой программе, как это исправить подскажите, пожалуйста?! А второе, в самой программе у меня почему-то не получается обратиться к процедуре! Что мне нужно подправить?!
Вот текст этой программы:

program nomer13;
procedure nom(str: string; i,n: integer; var z: char);
begin
for i:=1 to n do
str:= str+chr(ord('z'));
end;
var z: char;
n: integer;
begin
writeln('Vvedite simvol');
readln(z);
writeln('Vvedite ix kolichestvo');
readln(n);
writeln(nom(z));
end.


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


Гуру
*****

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

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


1. Не путай между собой символ 'z' и переменную z. еременная - лишь место в памяти, куда можно записать любой символ.
2. Вспомогательные переменные (например, переменную циула) принято описывать внутри процедуры, а не передавать в нее в качестве параметра.
3. Если хочешь вернуть значение переменной в параметре, именно эту переменную надо описывать как var.
4. У тебя не совпадает количество и тип параметров в заголовке процедуры и при ее вызове. И, соответственно, недоописанные при вызове процедуры параметры должны быть определены в основной программе.
5. Процедура не возвращает значения. Можно сделать либо так, как ниже, либо переопределить nom как функцию.
program nomer13;
procedure nom(var str: string; n: integer; z: char);
var i : integer;
begin
for i:=1 to n do
str:= str+z;
end;
var z: char;
n: integer;
s:string;
begin
writeln('Vvedite simvol');
readln(z);
writeln('Vvedite ix kolichestvo');
readln(n);
nom(s,n,z);
writeln(s);
end.

PS. Набивал прямо здесь, не проверял.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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