Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 08.06.2019
Сообщений: 3

Не могу понять в чем ошибка

08.06.2019, 21:06. Показов 982. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю часть программы для кодировщика в котором сдвиг букв происходит на 5 рандомных чисел генерируемых массивом, на этапе кодировки все правильно, но проблема с декодированием, с логической стороны все, вроде, правильно, но работает на так как надо, помогите пж
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
uses crt,events;
Const
  y = 'АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя ';
  var 
 s1,s2:string;
 r:integer;
 i1,h,h2,i2: integer;
 
 f,f1: text;
 
p:array [-67..67] of integer;
begin
writeln('введите r');
readln(r);
if r=3 then 
begin
assign(f, 'simvol.txt');
writeln('Введите текст');
readln(s1);
rewrite(f);
     for h:=1 to 5 do
     begin
     p[h]:= random(10)-random(10); 
     write(p[h]:3);
       write(f,p[h]:3);    
     end;
      close(f);
      for i1:= 1 to length(s1) do
       begin
       If (Pos(s1[i1],y)<>0) then
       begin
       h:=Pos(s1[i1],y)+p[i1 mod 5];
       if h>length(y) then h:=h-length(y);
       if h<1 then h:=length(y)+h;
       s1[i1]:=y[h];
       end;
end;     
    writeln;
       writeln(s1);
end;
if r=4 then
begin
readln(s2);
assign(f1, 'simvol.txt');
reset(f1);
  for h:= 1 to 5 do
    begin
      while not eof(f1) do
       begin
        read(f1,p[h]);
        write(p[h]:3);
       end;
       end;
       close(f1);
       
    for i1:= 1 to length(s2) do
       begin
   for h2:=1 to 5 do
   begin
       If (Pos(s2[i1],y)<>0) then
       begin
       h:=Pos(s2[i1],y)-p[i1 mod 5];
       if h>length(y) then h:=length(y)-h;
       if h<1 then h:=h+length(y);
       s2[i1]:=y[h];
       end;
end;
end;     
         writeln;
             writeln(s2);
    
end;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2019, 21:06
Ответы с готовыми решениями:

Не могу понять в чем моя ошибка
Что нужно сделать: Дано натуральное число n. Вычислить 2/1+3/2+4/3+...+n+1/n program nat4isl; uses crt; var n,i,s,a:real; begin ...

Программа по паскалю, не могу понять в чем же ошибка
Решила простую задачу по паскалю, однако не все так хорошо, ругается на else var a,b,c,d,e,f,g,j,i,k,y: integer; begin writeln...

Не могу понять в чем ошибка
Задали написать Д.З. когда добавил код с Icompare, стали выдавать ошибки using System; using System.Collections; namespace ТС { ...

3
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
09.06.2019, 08:43
Цитата Сообщение от ovosh Посмотреть сообщение
с логической стороны все, вроде, правильно
Ну раз правильно, то зачем сюда? Или ключевое слово „вроде“?

Во-первых, зачем вам модули?
crt — мешает отладке программы.
А events — вообще пустой! В нём ни одного метода…

Во-вторых, про форматирование текста вы что-то слышали, на как и зачем его применять, видимо, не знаете…

В-третьих, про case вы не слышали? Ну, дык, загляните в помощь или в любой букварь по паскалю!
Да и „введите r“ — это что за r такое? И с чем его едят? Ну введёт пользователь 3.14 или привет!, а программа почему-то ошибку выдаёт!
Хорошо. Введёт пользователь 1. Ни чего не произошло.
Введу 2. Ни чего.
После этого любопытство пользователя точно закончится… ;–(

В-четвёртых, random(10)-random(10) — это просто шедеврально! И что у вас в итоге получится? Число от –9 до +9. А не проще ли, тогда, сразу random(-9,9)?

В-пятых, открыли вы файл на чтение и потом пять раз пытаетесь считать его до конца:
Pascal
45
46
47
48
49
50
51
52
53
reset(f1);
          for h:= 1 to 5 do
            begin
              while not eof(f1) do
                begin
                  read(f1,p[h]);
                  write(p[h]:3);
                end;
            end;
Это самое то
Цитата Сообщение от ovosh Посмотреть сообщение
логической стороны
0
1 / 1 / 0
Регистрация: 08.06.2019
Сообщений: 3
09.06.2019, 10:59  [ТС]
Ну давай разберем по частям тобою написанное, во-первых, как я и сказал это часть программы, и да, тут есть переменные и модули которые не используются в данный момент. Во-вторых, r является 3 для кодирования и 4 для декодирования просто как индикаторы, на которые я сделал кнопки. В-третьих, файл на чтение открывается, считывается и выводится пять раз потому, что, как я уже говорил, сдвиг букв происходит на 5 рандомных чисел, которые являются массивом, который я записал в файл при r=3, а в r=4 его читаю и вывожу на экран для проверки.
Так что не надо строить из себя "строить" псевдо гения, и вести себя так надменно, если не понимаете что делает данная часть года.
1
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
09.06.2019, 11:58
ovosh, давайте не будем переходить на личности!
И, к стати, с чего это вы мне тыкаете?

А, если такой умный, то отладчик вам в руки!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2019, 11:58
Помогаю со студенческими работами здесь

Не могу понять в чем ошибка
Здрасте!!! Тока начал изучать язык php. Изучал по урокам Попова, но зашел в тупик. Установил denwer, выложил свои данные в базу данных....

Не могу понять в чем ошибка
Почему то при вводе отрицательного значения возводиться в квадрат только последнее число из массива, а не все отрицательные. Program...

Не могу понять в чем ошибка
Задание: Печать в обратном порядке элементов вещественного файла до элемента, номер которого равен значению серединного элемента...

Не могу понять в чем ошибка
Не могу понять, где ошибка. Помогите, пожалуйста

Не могу понять в чем ошибка
Пытаюсь выполнить действия в структуре,пишет,что :Ошибка CS0029 Не удается неявно преобразовать тип &quot;int&quot; в &quot;string&quot;. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru