Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для Homjak
6 / 5 / 2
Регистрация: 03.10.2009
Сообщений: 50

Задача на функцию

03.10.2009, 16:58. Показов 1830. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Даны натуральные числа n, m. Напечатать те цифры, которые входят в запись чисел n, m.
Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2009, 16:58
Ответы с готовыми решениями:

Задача на функцию
ПОСЧИТАТЬ A!+B! (!-факториал) (сначала записать функцию факториала) ЗАРАНЕЕ СПАСИБО!!!

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

Задача на функцию
Задание выглядит так : (Ссылка на сторонний ресурс удалена) F=\sqrt{x^n+y^m}+\frac{(n + m)!}{\sum_{k=1}^{t}Z_k-\sum_{j=1}^{p}S_j} ...

15
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2009, 17:13
А Вы уверены что задача именно на функцию, а не на процедуру? Дело в том что в Паскале это разные вещи. Если нужно определить конкретное значение, можно и процедуру и функцию, но если нужно выполнить различные действия и вывести в результате несколько данных, например массив, элементы множества, и т. д., то тут нужна процедура.
1
 Аватар для Homjak
6 / 5 / 2
Регистрация: 03.10.2009
Сообщений: 50
03.10.2009, 17:16  [ТС]
Да процедура.
0
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
03.10.2009, 17:36
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const ss:array [0..9] of string=('0','1','2','3','4','5','6','7','8','9');
var i,j,n,m:integer;
    s:string;
begin
 write('Введите m='); readln(m);
 write('Введите n='); readln(n);
 for i:=0 to 1 do
  begin
   write('Для ',chr(109+i),' :');
   str(m,s);    {преобразовать в текст}
   for j:=0 to 9 do if pos(ss[j],s)<>0 then write(ss[j],' ');
   writeln;  {начать новую строку}
   m:=n;    {теперь - для n}
  end;
 readln;     {задержать экран}
end.
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2009, 17:44
Homjak, Нужно вывести цифр, которые входят в запись обоих чисел, или в каждое по отдельности, или входят в одно, но не входят в другое, например
12345
23456
Нужно
1. 1 2 3 4 5 6
2.
-1)1 2 3 4 5
-2)2 3 4 5 6
3.
-1)1
-2)6
1
 Аватар для Homjak
6 / 5 / 2
Регистрация: 03.10.2009
Сообщений: 50
03.10.2009, 17:45  [ТС]
спасибо, щас попробую.
0
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
03.10.2009, 17:47
А с функцией - так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var n,m:integer;
function cyfra(m:integer):string;
const ss:array [0..9] of string=('0','1','2','3','4','5','6','7','8','9');
var j:integer;
    s,sss:string;
begin
 sss:='';
 str(m,s);
 for j:=0 to 9 do if pos(ss[j],s)<>0 then sss:=sss+ss[j];
 cyfra:=sss;
end;
begin
 write('Введите m='); readln(m);
 write('Введите n='); readln(n);
 writeln('Для m :',cyfra(m));
 writeln('Для n :',cyfra(n));
 readln;
end.
1
 Аватар для Homjak
6 / 5 / 2
Регистрация: 03.10.2009
Сообщений: 50
03.10.2009, 17:53  [ТС]
Работает спасибо. можно ещё комментарии к кое чему:

Цитата Сообщение от Михайло_ Посмотреть сообщение
chr(109+i)
вот это чуть не понял что с символом...

Цитата Сообщение от Михайло_ Посмотреть сообщение
for i:=0 to 1 do
чуть непонял смысл этого...


Цитата Сообщение от Михайло_ Посмотреть сообщение
for j:=0 to 9 do if pos(ss[j],s)<>0 then write(ss[j],' ');
и этого на счёт поиска в подстроке.
Спасибо!
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2009, 18:13
Все нормально, но можно взять для чисел тип longint, выбор побольше, и в константе массив строк из одного символа заменить просто на строку, смысл тот же.
Pascal
1
const ss:string='0123456789';
Добавлено через 7 минут
Вот вариант с процедурой и, если понимать, что нужно вывести цифры, которые есть в записи обоих чисел.
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
uses crt;
type
mnoz=set of 0..9;{множество цифр}
procedure Cifry(a,b:longint;var m:mnoz);
var ka,kb,i:byte;
begin
m:=[];
while (a>0)and(b>0) do
 begin
  ka:=a mod 10;{отделяем цифры}
  m:=m+[ka];{заносим в множество}
  a:=a div 10;
  kb:=b mod 10;
  m:=m+[kb];
  b:=b div 10;
 end;
writeln('В запись чисел входят цифры:');
for i:=0 to 9 do
if i in m then write(i,' ');{все что есть в множестве по 1 разу выводим}
readln
end;
var n,m:longint;
    mn:mnoz;
begin
clrscr;
writeln('Введите 2 числа:');
readln(n,m);
Cifry(n,m,mn);
end.
1
 Аватар для Homjak
6 / 5 / 2
Регистрация: 03.10.2009
Сообщений: 50
03.10.2009, 18:18  [ТС]
не просто я непонял то, что описал выше.

Добавлено через 2 минуты
самая первая прога чуть проще, спасибо
Puporev, я сохраню, но объясни мои вопросы, которые я задал выше. биг сенк =)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2009, 18:24
Самая первая программа без функции. Тогда уж вторую, но заменить строку, про которую я написал. А потом, что тебе надо, цифры каждого числа в отдельности, или обоих вместе? Я лично не понял. И потом, задача на какую тему, на строки, или на множества?
1
 Аватар для Homjak
6 / 5 / 2
Регистрация: 03.10.2009
Сообщений: 50
03.10.2009, 18:53  [ТС]
Puporev,
задача на процедуры и функции. я скопировал прям из лабы задание.
0
(Yellow_Duck)
 Аватар для MadMag
1261 / 130 / 15
Регистрация: 16.10.2008
Сообщений: 733
03.10.2009, 19:18
Puporev, разреши не согласиться: всегда можно сделать вместо процедуры функцию, а вместо функции процедуру.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2009, 20:36
YeLLoW DucK, Будь так добр, напиши функцию создания и вывода на экран матрицы.
0
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
03.10.2009, 22:03
Это мы о программе без функции (16:36), да?
Не разделяйте вопрос на тему и текст - я тему не читал, поэтому не знал, что необходима подпрограмма. Поскольку нужно обрабатывать 2 числа, то необходим цикл на 2 повторения. Этим занимается

for i:=0 to 1 do

Функция chr(109+i) возвращает ASCII-символ № (109+i). Т. е. при первом проходе цикла - букву m (код - 109), при втором - n (код - 110). Обратите внимание, что если при первом проходе цикла значение переменной m соответствует введенному с клавиатуры, то на втором проходе m=n (см. последнюю команду цикла).
Преобразовав числовое значение m в текстовое (переменная s) в цикле по j начинаем последовательно искать наличие цифр (вернее, символов) 0..9 с помощью функции pos. Эта функция возвращает позицию символа (очередного элемента массива) ss[j] в "слове" s. Если символ найден (номер позиции - не нулевой), то выводим цифру на экран.

Предупреждаю: эта программа решает иную задачу, нежели решил ув. Puporev (Вы ведь так и не уточнили условие)...

Добавлено через 9 минут
Цитата Сообщение от Puporev Посмотреть сообщение
YeLLoW DucK, Будь так добр, напиши функцию создания и вывода на экран матрицы.
А можно я попробую?
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type mas=array [1..3] of integer;
var b:integer;
    a:mas;
function f(var a:mas):integer;
var i:integer;
begin
 for i:=1 to 3 do
  begin
   a[i]:=i;
   writeln(a[i]);
  end;
end;
begin
 b:=f(a);
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
03.10.2009, 22:11
Это извращенство, а не функция. Все-таки для функции с дополнительными параметрами, не они должны быть основными.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.10.2009, 22:11
Помогаю со студенческими работами здесь

задача на функцию
. Составить программу для вычисления значения выражения g(1.2, -s) + g(t,s) - g(2s-1,st), где g(a,b)=a^2+b^2/a^2+3ab+3b^2+4 ...

Задача на функцию
Описать функцию Fact(N) целого типа, вычисляющую значение &quot;двойного факториала&quot;. N!!-1*3*5*...*N, если N - нечетное. N!! = 2*4*6*...*N,...

задача на функцию
Составить программу для вычисления значения выражения |g(s, t+1)) - g(t, s)|, где g(a,b)=a^2+b^2/a^2+2ab+3b^2+4 Значения s, t...

Задача на функцию
Напишите функцию f(x), которая возвращает значение следующей функции, определённой на всей числовой прямой: Опишите только функцию в...

задача на функцию
Составить программу для вычисления значения выражения max(a,a+b)+max(a,b+c) -----------------------(эт типо деление) ...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен 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, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru