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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2008, 09:30   #1
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию Делфи Консоль ПОмогите пожалуйста

1) Дано натуральное число n. Среди чисел 1, ..., п найти такие, запись которых совпа-дает с последними цифрами записи их квадратов (например, б2 = 36, 252= 625).
Код:
var
    n,numsqr:integer;
    num:integer;
    d:real;
    ok:boolean;
begin

writeln ('vvedite 4uclo'); readln(d);
    for num:=1 to 10 do begin
     numSqr:=num*num;
      ok:=true;
       while num <> 0 do begin
          if ((num mod 10) <> (numSqr mod 10)) then begin
             ok := false;
            break;
           end;
        d:=(num/10);
        numsqr:=numsqr div 10;
       writeln ('d', 2:3);
      end;
     if ok then writeln(d);
    end; readln;
    end.
вот что у меня получилось

=================================== ==============

2) В небоскрёбе N этажей и всего один подъезд; на каждом этаже по 3 квартиры; лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры М. На какой этаж должен доставить лифт пассажира?

Последний раз редактировалось Stilet; 10.06.2008 в 10:09.
LLIypLLIyH вне форума Ответить с цитированием
Старый 10.06.2008, 11:25   #2
master_root
Пользователь
 
Регистрация: 18.05.2008
Сообщений: 30
По умолчанию

2.Функция в аргументе принимает число этажей в небоскрёбе - N и номер квартиры - M соответственно:
Код:
function func(N,M: integer): integer;
var
	res: integer;
begin
{получение этажа исходя из номера квартиры}
  res:=M div 3;
	if res <> (res-(M mod 3)) then
		res:=(M div 3)+1;
  if res>N then//если получившийся этаж больше введённого пользователем, то выдаём результат,который обнаружит нам ошибку 
  begin
    func:=-1;
    exit;
  end;
{если получившийся этаж чётный и непоследний, то высаживаем на более высоком нечётном этаже
 если получившийся этаж чётный и последний, то высаживаем на более низком нечётном этаже
 если получившийся этаж нечётный, то ничего не меняем и высаживаем его там где нужно}
	if (res mod 2) = 0 then
		if res<>N then
			res:=res+1
		else
			res:=res-1;
	func:=res;
end;
master_root вне форума Ответить с цитированием
Старый 10.06.2008, 16:33   #3
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию

Спасибо!)

А первую не знаешь как сделать?
LLIypLLIyH вне форума Ответить с цитированием
Старый 10.06.2008, 16:44   #4
Olympian
Форумчанин
 
Аватар для Olympian
 
Регистрация: 06.06.2008
Сообщений: 105
По умолчанию

а первую проще наверное так

Код:
function F1( Num : Integer) : Boolean;
var
  m : integer;
begin
  m := Num mod 10;
  case m of
     5, 6, 0, 1:F1 := True
     else
       F1 := False;
  end;
end;
За синтаксис не отвечаю - писал прямо тут..
А в самой программе делаешь цикл, где пробегаешь по всем числам от 1 до n
и если F1(i) = True тогда это нужное тебе число

Последний раз редактировалось Olympian; 10.06.2008 в 19:37.
Olympian вне форума Ответить с цитированием
Старый 10.06.2008, 18:56   #5
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию

Не понятно что то, не пашет она
LLIypLLIyH вне форума Ответить с цитированием
Старый 10.06.2008, 19:42   #6
Olympian
Форумчанин
 
Аватар для Olympian
 
Регистрация: 06.06.2008
Сообщений: 105
По умолчанию

Ой, извиняюсь - я неверно прочел условие.

В твоем коде - почему цикл самый первый выглядит так
for num := 1 to 10 do

Ведь мы прочли число - d. и цикл должен быть не до 10, а до d..Ну это так - 1й взгляд.
Так же - зачем тебе 1й writeln(d)
ты каждый раз выводишь 1но и тоже число.
Выводить надо num,а не d
Olympian вне форума Ответить с цитированием
Старый 10.06.2008, 19:49   #7
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию

Не рабетает, я вообще не понимаю(
LLIypLLIyH вне форума Ответить с цитированием
Старый 10.06.2008, 20:27   #8
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Код:
var
    i   : longint;
    d   : longint;
    tmp : longint;
    n   : word;

begin
    write('n = '); readln (n);
    writeln;

    for i := 1 to n do begin
        d := 1;
        tmp := i;
        while tmp > 0 do begin
            d := d * 10;
            tmp := tmp div 10;
        end;

        tmp := i * i;
        if i = tmp mod d then writeln ( i, ' --> ', tmp);
    end;

    readln;
end.
Цитата:
n = 10000

1 --> 1
5 --> 25
6 --> 36
25 --> 625
76 --> 5776
376 --> 141376
625 --> 390625
9376 --> 87909376
B_N вне форума Ответить с цитированием
Старый 10.06.2008, 21:10   #9
LLIypLLIyH
Пользователь
 
Аватар для LLIypLLIyH
 
Регистрация: 27.05.2008
Сообщений: 58
По умолчанию

Спасибо огромное!
LLIypLLIyH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с паскалем или Delphi - консоль Vitas1234 Фриланс 5 15.06.2008 16:52
Граф в Делфи консоль LLIypLLIyH Помощь студентам 6 12.06.2008 18:20
автоматическое создание элементов подскажите пожалуйста. можно ли в Делфи организовать следующее: по зад AniMEshKa Помощь студентам 4 19.04.2008 15:45