0 / 0 / 2
Регистрация: 30.09.2017
Сообщений: 22
1

Процедуры и функции

28.10.2017, 19:57. Показов 781. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
написал процедуру который определяет делится ли цифры(кроме 0 и 1) числа на само число. например число 126. Делится на 2 и 6.
и теперь эту процедуру нужно переделать в функцию типа boolean
помогите
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
procedure del(i: integer; var c, p: integer );// процедура делимости цифр на число
begin
  p := i;
  while i <> 0 do {разделения числа на цифры}
  begin
    c := i mod 10;
    if (c = 1) or (c = 0) then                          //  если 0 или 1
    begin
      i := i div 10;
      continue;
    end; 
    if (p mod c = 0) and (p < 10000) then 
    begin
      writeln(p, ' делится на одну из своих цифр');
      exit;
    end
    else
    begin
      writeln('Не делиться ни на одну из своих цифр(0 и 1 исключение)');
      i := i div 10;
    end;  
  end;
end;
 
var
  c, p, i: integer;
 
begin
  readln(i);
  del(i, c, p);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2017, 19:57
Ответы с готовыми решениями:

Функции и процедуры. При помощи процедуры записать слова задом наперед
Дана строка S, состоящая из не менее 5 слов. При помощи процедуры записать слова задом наперед....

Задачник Абрамян. Процедуры и функции. Процедуры с числовыми параметрами
Описать процедуру RectPS(x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника...

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

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

5
Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
28.10.2017, 20:14 2
Добавлено через 5 минут
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function TryDivision(x: integer): boolean;
begin
  Result := true;
  while Result and (x <> 0) do
  begin
    var last := x mod 10;
    if (last <> 0) and (x mod last <> 0) then Result := false;
    x := x div 10;
  end;
end;
 
begin
  Writeln(TryDivision(126));
end.
И все же. Это надо?

Добавлено через 1 минуту
Проверка на делимость числа x будет проверяться для всех его цифр, не равных 0.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32793 / 21133 / 8144
Регистрация: 22.10.2011
Сообщений: 36,393
Записей в блоге: 8
28.10.2017, 22:59 3
Pascal
1
2
3
4
5
6
7
8
9
10
function TryDivision(x: integer): boolean;
begin
  Result := true;
  while Result and (x <> 0) do
  begin
    var last := x mod 10;
    Result := (last < 2) or (x mod last = 0); // если 0 или 1 - то все нормально, проверять остаток не надо, иначе проверяем остаток
    x := x div 10;
  end;
end;
же, нет?
1
Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
29.10.2017, 07:33 4
Хм, ну да, volvo.
0
0 / 0 / 2
Регистрация: 30.09.2017
Сообщений: 22
29.10.2017, 13:47  [ТС] 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
function del(x: integer): boolean;
begin
  var j:=x;
  Result := false;
  while (not result) and (x <> 0) do
  begin
    var d := x mod 10;
    if (d = 0) or (d = 1) then begin
      Result := false; break; end
      else 
    begin
      if (j mod d = 0) then Result := true; end;
    x := x div 10; 
  end;
end;
 
var
  n: integer;
 
begin
  read(n);
  Writeln(del(n));
end.
но спасибо)
0
Alvin Seville
342 / 272 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
29.10.2017, 13:50 6
PHARAOH1488, то что пытаешься сделать сам - похвально. Почаще пытайся. Здесь помогают тем, кто хочет развиваться, а не стыбзивать решения с форума, написанные другими.
0
29.10.2017, 13:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2017, 13:50
Помогаю со студенческими работами здесь

Процедуры и функции: решить через процедуры S=a*x+b*y+c*z.
Пожалуста помогите решить через процедуры S=a*x+b*y+c*z.

Процедуры и функции. Процедуры с числовыми параметрами
Описать процедуру RectPS (x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника...

Подпрограммы-процедуры и процедуры-функции
Мне надо вычислить приближенное значение интеграла с помощью подпрограммы-процедуры и...

Процедуры и функции: вычислить значения функции на заданном отрезке с заданным шагом
ребята, помогите, пожалуйста! Срочно нужна такая программка по выделенному варианту... у самой...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru