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

Из натурального числа N удалить все цифры, равные заданной цифре А

25.10.2017, 20:30. Показов 4424. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет народ.
Дали задание.
Из натурального числа N удалить все цифры, равные заданной цифре А.
Первая строка входного файла содержит одно заданное натуральное число N (1 ≤ N ≤ 1019), вторая строка содержит цифру А (0 ≤ A ≤ 9), которую нужно удалить из числа.
Выходной файл должен содержать число, которое получилось в результате удаления заданной цифры. Ведущие нули в результирующем числе выводить не надо. Если в числе нет заданной цифры, то вывести исходное число без изменений. Если будут удалены все цифры из числа, то вывести -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
var i,n,a,code: integer;
stroka, ch, res: string;
t : boolean;
begin
writeln('введите число');
readln(stroka);
writeln('введите цифру');
readln(ch);
res:= '';
i :=length(stroka);
for i:=1 to i do
  if ch<>stroka[i] then res:=res+stroka[i];
t:= true;
n:=0;
if res='' then writeln('-1')
else 
  while t=true do 
    if (res[1]='0') then begin
      a:=1;
      i:= length(res)-1;
      for i :=1 to i do a:=a*10;
      val(res,n,code);
      n:= n mod a;
      str (n, res);
      end
    else 
      t:= false;
 
writeln(res);
end.
Нужно как-то сделать считывание числа из файлы 'input.txt', а вывод ответа в файл 'output.txt'.
Помогите, а то с файлами у меня огромная беда
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.10.2017, 20:30
Ответы с готовыми решениями:

Проверить все ли цифры числа равны заданной цифре
помогить написать программы, пожалуйста 1) проверить все ли цифры числа равны цифре с 2) проверить все ли цифры числа одинаковы 3)...

Из данного натурального числа удалить все цифры A ( A вводиться с клавиатуры).
1. Дано натуральное число: a) Найти произведение цифр этого числа; b) Верно ли, что данном числе нет данной цифры A (цифру A вводить...

Удалить из натурального числа случайные цифры
Дано натуральное число N. Сколько цифр в числе N, столько раз получить случайным образом цифру, и вывести ее на экран. Если эти цифры...

7
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
26.10.2017, 05:32
код не проверял, добавил работу с файлами
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
var i,n,a,code: integer;
stroka, ch, res: string;
t : boolean;
  f:text;
begin
assign(f,'input.txt');
reset(f);
//writeln('введите число');
readln(f,stroka);
//writeln('введите цифру');
readln(f,ch);
close(f);
res:= '';
i :=length(stroka);
for i:=1 to i do
  if ch<>stroka[i] then res:=res+stroka[i];
t:= true;
n:=0;
if res='' then writeln('-1')
else 
  while t=true do 
    if (res[1]='0') then begin
      a:=1;
      i:= length(res)-1;
      for i :=1 to i do a:=a*10;
      val(res,n,code);
      n:= n mod a;
      str (n, res);
      end
    else 
      t:= false;
assign(f,'output.txt');
rewrite(f); 
writeln(f,res);
close(f);
end.
1
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
26.10.2017, 05:52
Во-первых, вы пишете в разделе PascalABC.Net программу на Turbo Pascal…
Pascal
1
2
3
4
5
begin
  var n := ReadLnString;
  var a := ReadLnString;
  WriteLn(n.Replace(a, ''));
end.
И это всё!

Во-вторых, перенаправить ввод-вывод здесь тоже очень просто:
Pascal
1
2
3
4
5
begin
  Reset(input, 'input.txt'); Rewrite(output, 'output.txt');
  WriteLn(ReadLnString.Replace(ReadLnString, ''));
  Close(input); Close(output);
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,909
Записей в блоге: 12
26.10.2017, 10:10
Цитата Сообщение от JuriiMW Посмотреть сообщение
вы пишете в разделе PascalABC.Net программу на Turbo Pascal
Понимаешь, в чем дело... PascalABC.NET прекрасно компилирует эту программу, то есть, она вполне легальна в этом разделе. И к тому же - переносима на другие компиляторы, это всегда неоспоримый плюс. А твой код - мертвый. Он живет только до тех пор, пока жива эта поделка, которую с каждым разом все больше и больше гробят, вносят все больше и больше глюков (инсайдеры какие-то завелись, честное слово. Было же все относительно нормально еще несколько версий назад, почему теперь среда минимум 3 раза в день крашится, да к тому же подсказки работают только в 30% из случаев? Парсер не справляется? Так надо дорабатывать парсер, а не писать свои финтифлюшки - extensionmethod-ы - ничего с Linq-ом общего не имеющие)...
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
26.10.2017, 14:13
Не надо качать новые версии этой IDE. Каждая все хуже и хуже.
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
26.10.2017, 16:47
3.0 по моему лучше 3.3 - меньше багов.

Добавлено через 1 минуту
Я понимаю, что это странно звучит от человека, который вчера еще хотел писать в "современном" стиле PABC.Net. Но раз уж volvo заговорил о глючности среды, то мне остается поддержать.

Добавлено через 49 секунд
У самого она проявляется. Например, при наборе кода когда всплывает подсказка по точке зависает вся IDE.

Добавлено через 25 секунд
Такого в 3.0 не было (либо было, но меньше).

Добавлено через 2 часа 30 минут
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
var
  N, N2: integer;
  A: integer;
  L, L2: integer;
 
begin
  Readln(N, A);
  N2 := N;
  
  while N2 <> 0 do
  begin
    if N2 mod 10 <> A then Inc(L2);
    N2 := N2 div 10;
    Inc(L);
  end;
  Dec(L);Dec(L2);
  L := Round(Power(10, L));
  L2 := Round(Power(10, L2));
  
  while L > 0 do
  begin
    var k := N div L;
    if k <> A then
    begin
      N2 += L2 * k;
      L2 := L2 div 10;
    end;
    
    N := N mod L;
    L := L div 10;
  end;
  
  Writeln(N2);
end.
Было интересно написать исключительно через div и mod.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,909
Записей в блоге: 12
26.10.2017, 17:13
Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
Было интересно написать исключительно через div и mod.
Слишком много лишнего. Все проще:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var 
  N, A : Integer;
  T, Pwr10 : Integer;
begin
  Readln(N, A);
  
  T := 0; Pwr10 := 1;
  while N > 0 do
  begin
    if N mod 10 <> A then
    begin
      T := T + Pwr10 * (N mod 10);
      Pwr10 := Pwr10 * 10;
    end;
    N := N div 10;
  end;
  
  if Pwr10 = 1 then T := -1;
  Writeln(T);
end.
1
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
26.10.2017, 17:21
Все, понял. Спасибо, друг.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2017, 17:21
Помогаю со студенческими работами здесь

Вывести самую старшую цифру натурального числа, которая больше заданной цифры
Дано натуральное число. Вывести самую старшую его цифру, которая больше заданной цифры. Если таких цифр нет, то вывести 0. Пример:...

все цифры заданного натурального числа n по возрастанию
Поставить все цифры заданного натурального числа n по возрастанию Использовать подпрограммы функции и процедуры, занесенные в модули(( ...

3.Поставить все цифры заданного натурального числа n по возрастанию.
3.Поставить все цифры заданного натурального числа n по возрастанию. оформлять в виде подпрограмм-функций или подпрограмм-процедур,...

Напечатать в возрастающем порядке все цифры,не входящие в запись данного натурального числа
Напечатать в возрастающем порядке все цифры,не входящие в запись данного натурального числа . --------------------------------------- ...

Напечатать в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа N
Помогите пожалуйста Напечатать в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа N (число выбрать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru