М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
k03a12345
k03a12345
12.04.2022 21:13 •  Информатика

Паскаль шифр цезаря почему при дешифровке в слове с буквой "в" в результате выдаёт восклицательный знак то есть не может его дешифровать? program shifr_cezerya; uses crt; var a,b,c: string; i,j,k,d,g: integer; begin clrscr; writeln('шифрование? 1-да,0-нет'); readln(g); writeln('исходный текст '); readln(a); writeln('ключ'); readln(d); c: =''; //результат b: =''; for i: =1 to length(a) do //цикл for j: =1 to length(b) do begin if g=1 then k: =(j+d) mod 33 else k: =(j-d)mod 33; if k> 33 then k: =k-33; if k< 0 then k: =k+33; if a[i]=b[j] then c: =c+b[k]; end; writeln(c); readkey; end.

👇
Ответ:
nadialihas2005
nadialihas2005
12.04.2022
Ну во-первых должно быть примерно так
for i:=1 to length(a) do //цикл
for j:=1 to length(b) do
if a[i]=b[j] then
begin
If g=1 then k:=(j+d) mod 33 else k:=(33+j-d)mod 33;
c:=c+b[k];
end;

и во-вторых, второй цикл не нужен, там надо выяснять 
значение j поиском a[i] в b, тогда и условия с a[i]=b[j] не надо
4,8(39 оценок)
Открыть все ответы
Ответ:
dora12345pandora
dora12345pandora
12.04.2022
Const
  n = 20;

var
  a: array[1..n] of integer;
  b: array[-5..11] of integer;
  i, j, m: integer;

begin
  //Заполнение массива и подсчет кол-ва каждого из интервала
  // от -5 до 11
  writeln('Исходный массив');
  for i := 1 to n do
  begin
    a[i] := random(17) - 5;
    inc(b[a[i]]);
    write(a[i]:4);
  end;
  writeln;
  //Сортировка и вывод массива
  writeln('Отсортированный массив');
  for i := 1 to n - 1 do
  begin
    for j := i + 1 to n do
    begin
      if a[i] > a[j] then begin
        m := a[i];
        a[i] := a[j];
        a[j] := m;
      end;
    end;
  end;
  for i := 1 to n do write(a[i]:4);
  writeln;
 
  //Вывод количества чисел из интервала
 
  for i := -5 to 11 do
  begin
    writeln('Число:', i:4, ' кол-во: ', b[i]:4);
  end;
end.

Тестовое решение:
Исходный массив
   9   4   6   1   8  -5   9   0  -1   0   7   7  -1  -3  -1  -2   7   3  11   4
Отсортированный массив
  -5  -3  -2  -1  -1  -1   0   0   1   3   4   4   6   7   7   7   8   9   9  11
Число:  -5 кол-во:    1
Число:  -4 кол-во:    0
Число:  -3 кол-во:    1
Число:  -2 кол-во:    1
Число:  -1 кол-во:    3
Число:   0 кол-во:    2
Число:   1 кол-во:    1
Число:   2 кол-во:    0
Число:   3 кол-во:    1
Число:   4 кол-во:    2
Число:   5 кол-во:    0
Число:   6 кол-во:    1
Число:   7 кол-во:    3
Число:   8 кол-во:    1
Число:   9 кол-во:    2
Число:  10 кол-во:    0
Число:  11 кол-во:    1
4,7(3 оценок)
Ответ:
Артём1228777
Артём1228777
12.04.2022
Программа (не проверяет корректность введенных данных, т.е. работает правильно только в случае, если введена корректная дата в формате dd.mm.):
const months:array[1..12] of string=
('января','февраля','марта','апреля','мая','июня',
'июля','августа','сентября','октября','ноября','декабря');
var s,s1,month:string;
d,m,y,code:integer;
begin
write('Введите дату dd.mm. = '); readln(s);
Val(copy(s,1,2),d,code);
s1:=s; 
delete(s1,1,3);
Val(copy(s1,1,2),m,code);
month:=months[m];
delete(s1,1,3);
Val(copy(s1,1,4),y,code);
writeln(d,' ',month,' ',y);
end.

Пример:
Введите дату dd.mm. = 05.04.2016
5 апреля 2016
4,7(51 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ