Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Исправьте на паскаль код

Тимур Алиев Ученик (173), на голосовании 5 месяцев назад
const
abc = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';

var
i, j, k: integer;
q: boolean;
t: text;
s1, s2, w: string;

begin
writeln('Введите закодированное слово');
readln(s1);
s2 := s1;
for i := 1 to 33 do
begin
for j := 1 to length(s1) do
begin
for k := 1 to 33 do
if s1[j] = abc[k] then s2[j] := abc[(k + i) mod 33 + 1];
end;
assign(t, 'words.txt');
reset(t);
while w <> s2 do
begin
readln(t, w);
if w = s2 then
begin
q := true;
writeln('Исходное слово: ', s2, ', сдвиг ', (33-i - 1) mod 33);
end;
if w = '' then break;
end;
close(t);
end;
if q = false then
begin
writeln('Слова нет в памяти. Добавьте новое слово:');
readln(s1);
assign(t, 'words.txt');
append(t);
writeln(t, s1);
close(t);
end;
readln;
end.
Голосование за лучший ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157223) 6 месяцев назад
 
const
abc = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя';

var
i, j, k: integer;
q: boolean;
t: text;
s1, s2, w: string;

begin
writeln('Введите закодированное слово');
readln(s1);
q := false; // Инициализация переменной q

for i := 1 to 33 do
begin
s2 := ''; // Переинициализация s2 для каждого нового сдвига
for j := 1 to length(s1) do
begin
for k := 1 to 33 do
if s1[j] = abc[k] then
begin
s2 := s2 + abc[(k + i - 1) mod 33 + 1]; // Исправлено вычисление сдвига
break; // Выход из вложенного цикла после успешного сопоставления и замены символа
end;
end;
assign(t, 'words.txt');
reset(t);
while not eof(t) do
begin
readln(t, w);
if w = s2 then
begin
q := true;
writeln('Исходное слово: ', w, ', сдвиг ', i); // Исправлен вывод сдвига
break; // Выход из цикла чтения после нахождения слова
end;
end;
close(t);
if q then break; // Выход из внешнего цикла после успешного нахождения слова
end;

if not q then
begin
writeln('Слова нет в памяти. Добавьте новое слово:');
readln(w); // Изменено на чтение в переменную w для избежания путаницы
assign(t, 'words.txt');
append(t);
writeln(t, w);
close(t);
end;
readln;
end.
Тимур АлиевУченик (173) 6 месяцев назад
такие ошибки пишет
Тимур АлиевУченик (173) 6 месяцев назад
reset(t); красным горит
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157223) Тимур Алиев, обновил ответ, проверь ещё раз
Андрей Панарин Искусственный Интеллект (249503) 6 месяцев назад
Первые три строчки - это предупреждения с советами, как лучше написать ваш код.

Ошибка только четвертая.
Она связана с тем, что у вас нет файла words.txt, который ваша программа открывает.

Создайте этот файл и напишите в нем то, что хотите читать программой.
Или просто пустой файл. Вижу, что программа сама умеет его дополнять.
Оракул (50099) 6 месяцев назад
 привет
я
вот
запаковал
собранный плеер с плейлистом
в
котором проблема
при нажатии на стрелку
вперёд или назад

в плейлисте
нет никаких продвижений

вот ссылка
на
архив zip
скачай
распакуй
и открой index.html
в браузере

https://cloud.mail.ru/public/BvFt/9UXDGmwnk
Андрей Панарин Искусственный Интеллект (249503) Я сейчас на работе.
Похожие вопросы