Вопрос по информатике:
Компилятор в паскале пишет: строка 18 Нет перегруженной подпрограммы с такими типами параметров
program Shifr;
var s1,s2:string;
i,n,k,p:integer; key:integer; //ключ шифрования
f1,f2:text; BEGIN assign(f1,'Dannie.txt');
assign(f2,'Shifr.txt');
reset(f1);
rewrite(f2);
writeln('Введите ключ шифрования от 1 до 33:');
readln(key);
while Not(Eof(f1)) do
begin
readln(f1,s1); s2:='';
for i:=1 to length(s1) do
s2:=s2+chr(ord(s1[i]+key));
writeln(f2,s2);
end;
close(f1);
close(f2);
END.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 13.03.2015 10:27
- Информатика
- remove_red_eye 8551
- thumb_up 16
Ответы и объяснения 2
s2:=s2+chr(ord(s1[i]+key));
скобка не на месте. Надо так:
s2:=s2+chr(ord(s1[i])+key);
- 14.03.2015 12:13
- thumb_up 16
Ошибка в операторе s2:=s2+chr(ord(s1[i]+key));
s1 - строка, поэтому s1[i] - её i-й символ, который имеет тип char.
key - переменная типа integer.
Вы складываете char и integer. Что ожидаете получить?
В большинстве реализаций паскаля такая операция запрещена. В PascalABC.NET она допустима и результатом будет строка типа string.
Но и в этом случае функция Ord() будет вызвана неверно, поскольку её аргумент должен быть типа char, но не string.
- 16.03.2015 00:51
- thumb_up 16
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.