Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 18
1

Числа, запись которых в двоичной системе есть палиндром

02.12.2017, 21:39. Показов 1242. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1.Программа№1
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
uses crt;
var n,i,j,k,p:integer;
    s:string;
begin
clrscr;
repeat
write('Введите натуральное число от 1 до 1000 n=');
readln(n);
until (n>0) and(n<=1000);
writeln('Числа, запись которых в двоичной системе есть палиндром');
k:=0;
for i:=2 to n do
 begin
  j:=2;
  while (j*j<=i)and(i mod j<>0) do inc(j);
  if j*j>i then{если простое}
   begin
    s:='';//переводим в СС 2
    p:=i;
    while p>0 do
     begin
      s:=chr(p mod 2+48)+s;
      p:=p div 2;
     end;
   j:=1;
   while(j<=length(s) div 2)and(s[j]=s[length(s)-j+1]) do inc(j);
   if j>length(s) div 2 then
    begin
     k:=k+1;
     writeln(i,'->',s);
   end;
  end;
 end;
if k=0 then writeln('До даннного N таких чисел нет');
readln;
end.
Нужна помощь с разбором кода каждой строки.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2017, 21:39
Ответы с готовыми решениями:

Найти количество элементов, запись которых в двоичной системе – палиндром
Введите массив из 5 элементов с клавиатуры и найдите количество элементов, запись которых в...

Дана строка - запись числа в двоичной системе счисления. Преобразуйте ее в строку - запись числа в шестнадцатеричной системе счисления
Дана строка, представляющая собой запись числа в двоичной системе счисления. Преобразуйте ее в...

Задана строка s, представляющая собой запись числа в двоичной системе счисления
Задана строка s, представляющая собой запись числа в двоичной системе счисления. Осуществить...

Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой палиндром
Найти все простые натуральные числа, не превосходящие n, двоичная запись которых представляет собой...

3
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
03.12.2017, 16:42 2
Цитата Сообщение от zinsas Посмотреть сообщение
Нужна помощь с разбором кода каждой строки.
Может еще и сдать за Вас?
0
691 / 5405 / 265
Регистрация: 11.08.2016
Сообщений: 3,355
03.12.2017, 17:35 3
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

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
uses crt;{Подключение модуля crt}
var n,i,j,k,p:integer;{Объявление переменных}
    s:string;{Тоже}
begin{Начало программы}
clrscr;{Очистка экрана}
repeat{Начало цикла с постусловием}
write('Введите натуральное число от 1 до 1000 n=');{Вывод строки "Введите натуральное число от 1 до 1000 n="}
readln(n);{Ввод переменных n}
until (n>0) and(n<=1000); {Завершение цикла с постусловием. Условие выхода - n больше нуля и т меньше или равно 10000}
writeln('Числа, запись которых в двоичной системе есть палиндром');{Вывод строки "Числа, запись которых в двоичной системе есть палиндром" с переходом на новую строку}
k:=0;{Присвоение переменной k значения 0}
for i:=2 to n do{начало цикла #$&}
 begin{начало составного оператора}
  j:=2;{Присвоение переменной j значения 20}
  while (j*j<=i)and(i mod j<>0) do inc(j);{Цикл с предусловием. Условие продолжения цикла: j квадрат меньше или равно i и остаток от деления i на j не равен нулю(i не делится на j нацело). В цикле происходит увеличение j}
  if j*j>i then{если j квадрат больше j}
   begin{Начало составного оператора}
    s:='';{присвоение переменной s пустой строки}
    p:=i;{присвоение переменной p значения переменной i}
    while p>0 do//Начало цикла с предусловием. Условие продолжения цикла: p больше нуля
     begin{Начало составного оператора}
      s:=chr(p mod 2+48)+s;//Добавление в начало строки s символа двоичной цифры равной остатку от деления p на 2
      p:=p div 2;//Целочисленное деление p/2
     end;{конец составного оператора}
   j:=1;{присвоение переменной j значения 1}
   while(j<=length(s) div 2)and(s[j]=s[length(s)-j+1]) do inc(j);{Цикл с предусловием. Условие продолжения цикла: j меньше или равно длине s, делёной на  2 и символ строки s под номером j равен противоположному символу строки s. В цикле происходит увеличение j}
   if j>length(s) div 2 then //Если j дальше половины строки
    begin
     k:=k+1;//k увеличивается на 1
     writeln(i,'->',s);//Вывод i, строки "->" и s с переходом на новую строку
   end;{конец составного оператора}
  end;{конец составного оператора}
 end;{конец составного оператора}
if k=0 then writeln('До даннного N таких чисел нет');//Если k равно нулю, вывод строки "До даннного N таких чисел нет" с переходом на новую строку
readln;//Ожидание ввода чего угодно
end.//Конец программы
0
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 18
04.12.2017, 16:33  [ТС] 4
Ivandur,очень благодарен вам.
0
04.12.2017, 16:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2017, 16:33
Помогаю со студенческими работами здесь

вывести строку, представляющую собой запись этого числа в двоичной системе исчисления
help! ввести число. вывести строку, представляющую собой запись этого числа в двоичной системе...

Проверить правильность ввода числа в двоичной системе счисления
2. Дано число в двоичной системе счисления. Проверить правильность ввода этого числа (в его записи...

Определить делимость на 7 натурального числа записанного в двоичной системе счисления
Требуется определить делимость на 7 натурального числа записанного в двоичной системе счисления....

Во второй файл нужно перенести числа из первого файла в двоичной системе числения
Нужно создать 2 файла, в первый нужно записать с клавиатуры числа, а во второй файл нужно перенести...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru