Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2009, 13:32   #1
Evgo
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 17
Сообщение Помогите решить задачу на Паскале с использованием подпрограмм.

составить программу решения задачи с использованием подпрограмм.
Написать программу, которая находит и выводит на печать все четырехзначные числа вида abcd, для которых выполняется условие ab-cd=a+b+c+d.

Последний раз редактировалось Evgo; 20.06.2009 в 01:08. Причина: Изменение важности задания.
Evgo вне форума Ответить с цитированием
Старый 19.06.2009, 21:37   #2
Evgo
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 17
По умолчанию

Программа без подпрограмм выглядит:
Program zadacha4_2;
uses crt;
Var
a:array[1..4] of integer;
b:array [1..9000] of integer;
i,j,k,x:integer;
begin
clrscr;
j:=0;
for i:=1000 to 9999 do
begin
j:=j+1;
b[j]:=i;
end;
for i:=1 to 9999 do
begin
j:=0;
x:=b[i];
repeat
j:=j+1;
a[j]:=x mod 10;
x:= x div 10;
until (x=0);
if (a[1]*10+a[2]-a[3]*10-a[4]=a[1]+a[2]+a[3]+a[4]) then
begin
for k:=1 to 4 do
write(a[k]); write(' ');
end;
end;
end.
Где можно вставить подпрограммы?
Evgo вне форума Ответить с цитированием
Старый 20.06.2009, 00:11   #3
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

как-нибудь так
Код:
function count(a,b,c,d:integer):boolean;
begin
	count := (a * b - c * d) = (a + b + c + d);
end;

procedure separate(x:integer; var a,b,c,d:integer);
begin
	a := x div 1000;
	b := x div 100 mod 10;
	c := x div 10 mod 10;
	d := x mod 10;
end;

var
	x:integer;
	a,b,c,d:integer;
begin
	for x:=1000 to 9999 do begin
		separate(x,a,b,c,d);
		if (count(a,b,c,d)) then
			writeln(x);
	end;
	readln;
end.
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 20.06.2009, 00:46   #4
Evgo
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 17
Радость

По условию a*10+b-c*10-d=a+b+c+d, а не a*b-c*d=a+b+c+d. После этого исправления программа показывает правильные числа. Спасибо за помощь.
Evgo вне форума Ответить с цитированием
Старый 20.06.2009, 00:47   #5
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Цитата:
Сообщение от Evgo Посмотреть сообщение
По условию a*10+b-c*10-d=a+b+c+d, а не a*b-c*d=a+b+c+d. После этого исправления программа показывает правильные числа. Спасибо за помощь.
Цитата:
Написать программу, которая находит и выводит на печать все четырехзначные числа вида abcd, для которых выполняется условие ab-cd=a+b+c+d.
это то, что вы написали. Она и так показывает правильные числа для условия ab-cd=a+b+c+d.
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 20.06.2009, 00:51   #6
Evgo
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 17
По умолчанию

Цитата:
Сообщение от __STDC__ Посмотреть сообщение
это то, что вы написали. Она и так показывает правильные числа для условия ab-cd=a+b+c+d.
В кодеб который вы написали ab и cd- произведение, на самом деле это числа состоящие из двух цифр.
Evgo вне форума Ответить с цитированием
Старый 20.06.2009, 00:53   #7
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

Цитата:
Сообщение от Evgo Посмотреть сообщение
В кодеб который вы написали ab и cd- произведение, на самом деле это числа состоящие из двух цифр.
ну а я угадать что ли должен был? =) хоть бы оговорили как-то... так произведение иногда записывают..

***
в общем не суть. главное - работает
Uguu~
__STDC__ вне форума Ответить с цитированием
Старый 20.06.2009, 01:02   #8
Evgo
Пользователь
 
Регистрация: 17.06.2009
Сообщений: 17
По умолчанию

Это верно, а мне пока нужно другое задание делать.
Evgo вне форума Ответить с цитированием
Старый 20.06.2009, 16:29   #9
Nightt
Пользователь
 
Регистрация: 18.06.2009
Сообщений: 16
По умолчанию

помогите пожалйста

Дан двумерный массив, содержащий N*N элементов. Написать подпрограмму, выполняющую замену нулями всех элементов, расположенных на главной диагонали матриц.
Nightt вне форума Ответить с цитированием
Старый 20.06.2009, 18:31   #10
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

вы издеваетесь??
Код:
for i:=1 to n do
   x[i,i] := 0;
Uguu~
__STDC__ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу в Паскале? ТолянPAVL Помощь студентам 3 15.06.2009 19:27
Помогите решить задачу на паскале Bauyrzhan Помощь студентам 2 30.05.2009 10:20
Решить задачу с помощью подпрограмм Fonarik Помощь студентам 1 07.11.2008 22:30