Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 13.01.2016, 15:50   #1 (permalink)
brickbazuka
Новичок
 
Регистрация: 12.01.2016
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите пожалуйста. Pascal ABC

1.Имеются сведения о количестве проданных билетов в 17-ти вагонах поезда. Найти наименее загруженный вагон, учитывая, что количество мест в вагоне зависит от типа вагона: в мягком и купейном вагонах — по 36 мест, а в плацкартном — 46 мест.
2.Программу написать с использованием подпрограмм (процедуры или функции)
Составить программу для проверки, можно ли заданное натуральное число N представить в виде куба простого числа.
brickbazuka вне форума   Ответить с цитированием

Старый 13.01.2016, 15:50
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Предлагаю к вашему вниманию топики, которые по содержанию схожи с вашей темой

Pascal. Помогите пожалуйста
Помогите пожалуйста с Pascal
Помогите пожалуйста. Pascal
Помогите пожалуйста. Необходимо вычислить в Pascal
Помогите, пожалуйста, подредактировать, Pascal

Старый 13.01.2016, 16:20   #2 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,162
Сказал(а) спасибо: 9
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 9811
По умолчанию

2.Программу написать с использованием подпрограмм (процедуры или функции)
Составить программу для проверки, можно ли заданное натуральное число N представить в виде куба простого числа.

Код:
function Proverka(an:integer; var at:integer):boolean;
var  e,k:Real;
begin
     e:=0.00001;
      k:=Exp((1/3)*Ln(an));
       if Frac(k)<e
        then
         begin
           Proverka:=true ;
           at:=Trunc(k);
         end
        else Proverka:=false;
end;
var  n,t:integer;
begin
      Write('N = ');
       Readln(n);
        Writeln;
     t:=0;
     if Proverka(n,t)
      then Writeln('DA rezultat = ',t)
      else Writeln('NET');
     Readln;
end.
Евгений вне форума   Ответить с цитированием
Старый 13.01.2016, 16:25   #3 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 287
Поблагодарили 506 раз(а) в 164 сообщениях
Репутация: 91675
По умолчанию

Цитата:
Сообщение от brickbazuka Посмотреть сообщение
2.Программу написать с использованием подпрограмм (процедуры или функции) Составить программу для проверки, можно ли заданное натуральное число N представить в виде куба простого числа.
Код:
Var
 N,i,Q:Integer;
 BLN:Boolean;

Function Prime(J:Integer):Boolean;
Var
 m:Integer;
 b:Boolean;
begin
 b:=true;
 if J>3 then
  begin
   m:=(J div 2)+1;
   Repeat
    Dec(m);
    If (J mod m)=0 then b:=false;
   Until (b=false) or (m=2);
  end;
 Prime:=b;
end;

Begin
 Write('N = ');
 Readln(N);
 Q:=0;
 Repeat
  Inc(Q);
  BLN:=Prime(Q) and (Q*Q*Q=N);
 Until BLN or (Q*Q*Q>N);
 if BLN then
  Writeln('Yes: ',N,' = ',Q,'*',Q,'*',Q)
 else
  Writeln('No');
End.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 13.01.2016, 16:33   #4 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 287
Поблагодарили 506 раз(а) в 164 сообщениях
Репутация: 91675
По умолчанию

Женя, извини, но что-то у тебя не то:
1. Где проверка на то, что кубический корень - ПРОСТОЕ число?
2. В функциях "var" не употребляется: это тип формального параметра процедуры.
3. Что означает t? Какой в нем смысл, если ему присваивается глухо нулевое значение?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 13.01.2016, 17:26   #5 (permalink)
Евгений
Member
 
Аватар для Евгений
 
Регистрация: 31.03.2010
Адрес: Тульская область
Сообщений: 1,162
Сказал(а) спасибо: 9
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 9811
По умолчанию

1. А вот до простого и не дочитал
2. Первый раз слышу, что "var" не употребляется в функциях. Но я слышал, что если функция кроме прямого результата делает ещё что-то, то это очень даже хорошо.

Дописал:
Код:
function Prostoe(aa:integer):boolean;
var  pr:boolean;
      d:integer;
begin
     if aa<1
      then pr:=false
      else
       begin
         pr:=true;
         for d:=2 to (aa div 2) do
          if (aa mod d=0) then
           begin
             pr:=false;
             Break;
           end;
       end;
      Prostoe:=pr;
end;
function Proverka(an:integer; var at:integer):boolean;
var  e,k:Real;
     a:integer;
begin
     e:=0.00001;
      k:=Exp((1/3)*Ln(an));
       if Frac(k)<e
        then
         begin
           a:=Trunc(k);
            if Prostoe(a) then
             begin
               Proverka:=true ;
               at:=a;
             end
         end
        else Proverka:=false;
end;
var  n,t:integer;
begin
      Write('N = ');
       Readln(n);
        Writeln;
     t:=0;
     if Proverka(n,t)
      then Writeln('DA rezultat = ',t,'*',t,'*',t)
      else Writeln('NET');
     Readln;
end.
Евгений вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 13.01.2016, 20:54   #6 (permalink)
brickbazuka
Новичок
 
Регистрация: 12.01.2016
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо большое!А первую программу кто-нибудь сможет помочь?
brickbazuka вне форума   Ответить с цитированием
Старый 13.01.2016, 20:57   #7 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 287
Поблагодарили 506 раз(а) в 164 сообщениях
Репутация: 91675
По умолчанию

Цитата:
Сообщение от brickbazuka Посмотреть сообщение
Спасибо большое!А первую программу кто-нибудь сможет помочь?
Тут так. Вопрос.
Цитата:
Имеются сведения
Где и в каком виде эти сведения "имеются"? Сколько каких вагонов в составе?
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 13.01.2016, 21:01   #8 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,304
Сказал(а) спасибо: 287
Поблагодарили 506 раз(а) в 164 сообщениях
Репутация: 91675
По умолчанию

Цитата:
Сообщение от Евгений Посмотреть сообщение
2. Первый раз слышу, что "var" не употребляется в функциях. Но я слышал, что если функция кроме прямого результата делает ещё что-то, то это очень даже хорошо.
Женя, я, признаться, смущен и озадачен. Впервые вижу такой гибридный тип подпрограмм. Интересно. Ладно, будем разбираться. "Век живи, век учись - дураком помрешь". Это я о себе.
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 13.01.2016, 22:09   #9 (permalink)
brickbazuka
Новичок
 
Регистрация: 12.01.2016
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Цитата:
Сообщение от brickbazuka Посмотреть сообщение
Спасибо большое!А первую программу кто-нибудь сможет помочь?
Тут так. Вопрос.
Цитата:
Имеются сведения
Где и в каком виде эти сведения "имеются"? Сколько каких вагонов в составе?
Больше в условии не дано ничего, скорее всего произвольные значения
brickbazuka вне форума   Ответить с цитированием
Старый 13.01.2016, 22:50   #10 (permalink)
Daniellos
Хозяин Медной Горы
 
Аватар для Daniellos
 
Регистрация: 01.08.2011
Адрес: Армавир
Сообщений: 11,847
Записей в дневнике: 8
Сказал(а) спасибо: 640
Поблагодарили 74 раз(а) в 23 сообщениях
Репутация: 46330
По умолчанию

Владимир Игоревич, насколько помню, как в процедуре, так и в функции присутствует раздел объявления переменных, при этом функция оформляется в следующем виде:

Код:
Function <имя функции>(формальные параметры): тип значения функции;
Var
  . . . 
Begin
  . . .
End ;
Daniellos вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 23:33.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.