Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 5

Задача - удалить цифры 3 и 7 из числа, пользуясь операциями div/mod и циклом

10.04.2012, 19:46. Показов 1655. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program lab2;
uses crt;
var a,b,c,d:longint;
begin
clrscr;
writeln('введите число');
readln(a);
b:=1000000000;
repeat
begin
c:=a div b;
if c>1 then
begin
if (c<>3) and (c<>7) then
write(c)
end
else
b:=b/10;
end
until (b<10);
readln;
end.

при такой вот проге компилятор выдает мне следующую ошибку:
lab2.pas(18,5) error: Incompatible types: got "extended" expected "longint"
18я строка это вот эта - b:=b/10;

С паскалем не сказать что особо дружу, так что сильно строго не судите)
Что это за ошибка, как ее исправить? может кто-то подскажет правильный вариант такой проги?

Добавлено через 10 минут
заменила в этой ошибочной строке "/" операцией div, программа просто зацикливается
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.04.2012, 19:46
Ответы с готовыми решениями:

Используя только div и mod, записать цифры числа по порядку слева направо
Дано натуральное число N. Используя только div и mod написать цифры числа по порядку слева направо. Нужно чтобы программа состояла из...

Написать программу применения функций Div и Mod не пользуясь операцией деления через цикл
Доброго времени суток всем. В общем задача у меня такая : нужно написать программу применения функций Div i Mod не пользуясь операцией...

вычислить A:= 4*7 mod 5 div 2/3 - trunc(0.724) B:= Abs (round (5/2)-7 div 15+8 mod 9)
A:= 4*7 mod 5 div 2/3 - trunc(0.724) B:= Abs (round (5/2)-7 div 15+8 mod 9)

9
71 / 71 / 72
Регистрация: 18.01.2012
Сообщений: 132
10.04.2012, 22:29
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
program lab2;
uses crt;
var a,b,c,d:longint;
begin
     clrscr;
     writeln('ââåäèòå ÷èñëî');
     readln(a);
     b:=1000000000;
     repeat
     begin
          c:=a div b;
          if c>=1 then
          begin
          if (c mod 10<>3) and (c mod 10<>7) then{в с храниться после какого то момента число,
большее, чем десять, так что нужно рассматривать именно последнюю цифру числа с}
             write(c mod 10)
          end;
//          else
          b:=b div 10;{в любом случае нужно уменьшать b, иначе при с=13 к примеру (a=137)
будет плохо, и мы никогда не попадём сюда}
     end
     until (b<10);
     readln;
end.
0
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 5
10.04.2012, 22:32  [ТС]
она все равно зацикливается, не пойму почему(
0
71 / 71 / 72
Регистрация: 18.01.2012
Сообщений: 132
10.04.2012, 23:16
там в конце надо что то ввести
строка readln; под номером 21
если вы про это
0
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 5
11.04.2012, 19:38  [ТС]
нет, не нужно, это ведь просто задерживает экран, ждет нажатия enter

она просто начинает писать цифры, стоящие в начале числа, бесконечно
0
71 / 71 / 72
Регистрация: 18.01.2012
Сообщений: 132
11.04.2012, 20:13
Это очень странно, так как у меня проблем нет..
Да и как цикл может быть вечным, если b все время уменьшается..
Попробуйте стереть полностью строчку с else, на всякий случай.
Да и небольшая пометка, данное решение верно только для чисел больших нуля и меньших чем b*10.
0
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 5
11.04.2012, 20:21  [ТС]
вот и я не понимаю, почему так происходит, всё проверила на 100 раз, ошибок нет..
ну в принципе в LONGINTе как раз 10 разрядов, так что число разрядом больше просто заглючит, а отрицательное... надеюсь препод не будет столь жесток ко мне)
0
71 / 71 / 72
Регистрация: 18.01.2012
Сообщений: 132
12.04.2012, 00:43
Возможно глюк компилятора..
С отрицательными все просто:выводишь минус,если а меньше нуля и берешь по модулю!
Pascal
1
2
3
4
5
 if(a<0) then
 begin
  write('-');
  a:=abc(a);
 end;
вроде так
0
0 / 0 / 0
Регистрация: 10.04.2012
Сообщений: 5
21.04.2012, 22:02  [ТС]
Цитата Сообщение от Г.Р. Посмотреть сообщение
Возможно глюк компилятора..
С отрицательными все просто:выводишь минус,если а меньше нуля и берешь по модулю!
Pascal
1
2
3
4
5
 if(a<0) then
 begin
  write('-');
  a:=abc(a);
 end;
вроде так
ок, спасибо, это тоже учту))
кстати, как сделать, чтобы нули из числа не пропадали? из середины числа-то они у меня не уходят, я там подкорректировала программу, но препод ввел число 0023804... как сделать, чтобы первые нули были выведены в ответе?
0
71 / 71 / 72
Регистрация: 18.01.2012
Сообщений: 132
21.04.2012, 23:07
надо всё переделать
совсем!
все числа не хранят передние нули.
так что тогда это уже работа со строками или посимвольная работа!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.04.2012, 23:07
Помогаю со студенческими работами здесь

Сложите два целых неотрицательных числа, используя только сложение с единицей или вычитание, а также не пользуясь циклом
Формат ввода На одной строке через пробел заданы два неотрицательных целых числа m и n. Оба числа не превышают 900. Формат вывода ...

Используя операции div и mod, найти сумму цифр числа
Hi. Прошу помочь,самый легкий и рабочий вариант. Дано целое 4х значное число. Используя операции div и mod, найти сумму его цифр.

Используя операции div и mod, найти сумму цифр числа
Дано целое четырехзначное число. Используя операции div и mod, найти сумму его цифр.

Вычисление выражения с=(a+b mod a*4+b div a) div 2-a div 160
Пожалуйста, посмотрите на код, уввжаемые! нужно вычислить такое выражение: с=(a+b mod a*4+b div a) div 2-a div 160 У меня неверно...

Найти сумму всех цифр любого числа при помощи x div y и x mod y
:help: Здраствуйте! Помогите пожалуйста сделать проект в Lazarus, в котором при нажатии кнопки будет считаться сумма всех цифр любого...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru