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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2010, 01:05   #1
Timon779
Пользователь
 
Регистрация: 01.03.2010
Сообщений: 24
Радость

Я новичок в этом деле, совсем недавно начал изучать Паскаль, поэтому не судите строго Я хотел сделать что-то наподобие того, когда тебе звонят на телефон, а ты видишь не номер телефона, а имя звонящего тебе человека. Естественно после того, как я написал программу, она у меня не скомпилировалась, говорит, что перед else нужно убрать точку с запятой, если убираю, то говорит, что нужно поставить. Вот сам код программы:

Код:
program mobile_number;
const
   MaxSize = 11;
var
    i: integer; {номер телефона}
   n: integer; {количество цифр в номере}
   n1: integer; {Звонок внутри области}
   n2: integer; {Звонок на сотовый}
   n3: integer; {Звонок на государственный номер}
begin
   writeln('Введите номер телефона');
   readln(i);
   for i:=1 to n do
      if (n<0) or (n>MaxSize) then
         writeln('Вы ошиблись! Повторите.')
      else if (n>0) and (n<=MaxSize) then
         readln(n);  {считывается количество цифр в номере}
         if n=7 then
            writeln('Звонок по городскому телефону');
            readln(n1)
         else n=11 then
            writeln('Звонок по сотовому телефону');
            readln(n2);
         else n=3 then
            writeln('Звонок по государственному номеру');
            readln(n3);
         end; {end if}
            if n1 = 89168287954 then
               writeln('Димон(мобильный)');
            else n1 = 89163452400 then
               writeln('Света(мобильный)');
            end; {end if}
               if n2 = 1292543 then
                  writeln('Дом');
               else n2 = 3526324 then
                  writeln('Артем(домашний)');
               end; {end if}
                  if n3 = 100 then
                     writeln('Время');
                  else n3 = 095 then
                     writeln('Переключение на межгород');
                  end; {end if}
            
   end; {end for}
end.
только здесь при копировании структура меняется, у меня там было все как надо, грамотно, с пробелами после операторов расставлено

Последний раз редактировалось Stilet; 01.03.2010 в 09:23.
Timon779 вне форума Ответить с цитированием
Старый 01.03.2010, 10:24   #2
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

по-мо0438се при перечислении условий, потому у тебя и рему ты ошибся в синтаксугается
необходимо переделать в такую структуру (пример)
Код:
if ... then begin
   ...
   if ... then begin
      ...
   end;
end
else begin
   ...
end;
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 01.03.2010, 16:56   #3
Timon779
Пользователь
 
Регистрация: 01.03.2010
Сообщений: 24
По умолчанию Вот, подправил немного, но теперь ошибка в end for

Код:
program mobile_number;
const
   MaxSize = 11;
var
   i: integer; {íîìåð òåëåôîíà}
   n: integer; {êîëè÷åñòâî öèôð â íîìåðå}
   n1: integer; {Çâîíîê âíóòðè îáëàñòè}
   n2: integer; {Çâîíîê íà ñîòîâûé}
   n3: integer; {Çâîíîê íà ãîñóäàðñòâåííûé íîìåð}
begin
   writeln('Ââåäèòå íîìåð òåëåôîíà');
   readln(i);
   for i:=1 to n do
      if (n<0) or (n>MaxSize) then
         writeln('Âû îøèáëèñü! Ïîâòîðèòå.')
      else if (n>0) and (n<=MaxSize) then
         readln(n);  {ñ÷èòûâàåòñÿ êîëè÷åñòâî öèôð â íîìåðå}
         if n=7 then begin
            writeln('Çâîíîê ïî ãîðîäñêîìó òåëåôîíó');
            readln(n1);
         end {end if}
         else if n=11 then begin
            writeln('Çâîíîê ïî ñîòîâîìó òåëåôîíó');
            readln(n2)
         end {end else}
         else if n=3 then begin
            writeln('Çâîíîê ïî ãîñóäàðñòâåííîìó íîìåðó');
            readln(n3);
         end {end else}
   end; {end for}
            if n1 = 89168287954 then begin
               writeln('Äèìîí(ìîáèëüíûé)');
            end
            else if n1 = 89163452400 then begin
               writeln('Ñâåòà(ìîáèëüíûé)');
            end; {end if}
               if n2 = 1292543 then begin
                  writeln('Äîì');
               end
               else if n2 = 3526324 then begin
                  writeln('Àðòåì(äîìàøíèé)');
               end; {end if}
                  if n3 = 100 then begin
                     writeln('Âðåìÿ');
                  end
                  else if n3 = 095 then begin
                     writeln('Ïåðåêëþ÷åíèå íà ìåæãîðîä');
                  end; {end if}

end.

Последний раз редактировалось Timon779; 01.03.2010 в 17:00. Причина: Комментарии по-чему то в абракадабру перекодились
Timon779 вне форума Ответить с цитированием
Старый 01.03.2010, 17:27   #4
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Timon779
так просто, по коду хотел спросить, все эти сравнения с n. Ведь ты его не вводишь Откуда оно по твоему берется?
По моему вводишь нужно n, а не параметр цила Бесмысленно, он переопределится как только цикл начнет свою первую итерацию
Цитата:
Вот, подправил немного, но теперь ошибка в end for
ты забыл поставить begin этого самого for.
Базиля вне форума Ответить с цитированием
Старый 01.03.2010, 17:36   #5
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
const
   MaxSize = 11;
var
    i: string; {номер телефона}
   n: integer; {количество цифр в номере}
   begin
   writeln('Введите номер телефона');
   readln(i);
   n:=length(i);
      if (n<0) or (n>MaxSize) then
         writeln('Вы ошиблись! Повторите.')
      else begin
         if n=7 then
            writeln('Звонок по городскому телефону');

         if n=11 then
            writeln('Звонок по сотовому телефону');

         if n=3 then
            writeln('Звонок по государственному номеру');


            if i = '89168287954' then
               writeln('Димон(мобильный)');
            if i = '89163452400' then
               writeln('Света(мобильный)');

               if i = '1292543' then
                  writeln('Дом');
              if i = '3526324' then
                  writeln('Артем(домашний)');

                  if i = '100' then
                     writeln('Время');
                if i = '095' then
                     writeln('Переключение на межгород'); end;
                     readln;
end.
Google2010 вне форума Ответить с цитированием
Старый 01.03.2010, 18:32   #6
Timon779
Пользователь
 
Регистрация: 01.03.2010
Сообщений: 24
По умолчанию

спасибо, сейчас изменю код программы, посмотрю, что вышло

Google2010 спасибо! Скопировал код, действительно все работает. Только я не понял, почему же Паскаль всё скомпилировал при том, что после if нигде не было написано end?

Последний раз редактировалось Stilet; 02.03.2010 в 08:15.
Timon779 вне форума Ответить с цитированием
Старый 02.03.2010, 08:17   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
if нигде не было написано end?
А ему и не нужен end. End нужен для Begin, если тот стоит в конструкции IF'а, но это только в том случае, если в условии нужно выполнить несколько операторов, а у тебя один:
Код:
 if i = '100' then
                     writeln('Время');
А вот несколько
Код:
 if i = '100' then begin
                     writeln('Время');
                     writeln('и кое что еще');
          end;
их тут более одного, тогда нужен Begin, которому нужен End;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записной тип данных... Asira Помощь студентам 2 22.12.2009 23:51
Что-то наподобие диаграммы.Help! Elden Microsoft Office Excel 1 08.11.2009 19:19
Не компилируется пример из книжки AxenicX Помощь студентам 7 07.11.2009 22:07
Функция наподобие Т() motorway Microsoft Office Excel 9 08.07.2009 18:45
Разработка прототипа электронной телефонной книжки. Necrom Помощь студентам 1 03.02.2008 21:43