Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 01.06.2010, 11:32
Аватар для Lory
Lory Lory вне форума
Прохожий
 
Регистрация: 23.05.2010
Адрес: Москва
Сообщения: 29
Репутация: 10
Восклицание помогите решить задачку...

что будет выведено на печать?
Код:
program C;
var a,b,c,d:integer;
procedure P(var b:integer;c:integer);
var d:integer;
begin a:=5;b:=6;c:=7;d:=8;(writeln(a,b,c,d)end;
begin a:=1;b:=2;c:=3;d:=4;P(a,b);writeln(a,b,c,d)end.
Ответить с цитированием
  #2  
Старый 01.06.2010, 11:35
Аватар для Bars1992
Bars1992 Bars1992 вне форума
Активный
 
Регистрация: 24.04.2010
Адрес: Украина, Кременчуг
Сообщения: 249
Репутация: 22
По умолчанию

5678
6734
__________________
Не твори зла, и жизнь повернется к тебе передом
Ответить с цитированием
  #3  
Старый 01.06.2010, 11:38
Аватар для Lory
Lory Lory вне форума
Прохожий
 
Регистрация: 23.05.2010
Адрес: Москва
Сообщения: 29
Репутация: 10
Подмигивание

Цитата:
Сообщение от Bars1992
5678
6734
спасибо но мне нужны объяснения хотябыкратенько пожалуйста...
Ответить с цитированием
  #4  
Старый 01.06.2010, 11:45
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Нескомпилится этот код.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 01.06.2010, 11:51
Аватар для Lory
Lory Lory вне форума
Прохожий
 
Регистрация: 23.05.2010
Адрес: Москва
Сообщения: 29
Репутация: 10
По умолчанию

почему???
ну у мя щас экзамен и мне преподу надо объяснить откуда все это взялось...помогите пожалуйста...
Ответить с цитированием
  #6  
Старый 01.06.2010, 11:53
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Согласен с Aristarh Dark, ошибка при компиляции будет, причем не в одном месте. Догадайтесь почему
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 01.06.2010, 11:58
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

program C;
var a,b,c,d:integer;
procedure P(var b:integer;c:integer);
var d:integer;
begin a:=5;b:=6;c:=7;d:=8;(writeln(a,b,c,d)end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #8  
Старый 01.06.2010, 11:59
Аватар для Lory
Lory Lory вне форума
Прохожий
 
Регистрация: 23.05.2010
Адрес: Москва
Сообщения: 29
Репутация: 10
По умолчанию

потому что дано больше значений?)))
ну сначала бегин с одним потом бегин со вторым?)))
Ответить с цитированием
  #9  
Старый 01.06.2010, 12:05
Аватар для Lory
Lory Lory вне форума
Прохожий
 
Регистрация: 23.05.2010
Адрес: Москва
Сообщения: 29
Репутация: 10
По умолчанию

я все равно не понимаю почему ошибка объясните пожалуйста.....
Ответить с цитированием
  #10  
Старый 01.06.2010, 12:05
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Скобка лишняя, я ее выделил цветом специально
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #11  
Старый 01.06.2010, 12:06
Аватар для Lory
Lory Lory вне форума
Прохожий
 
Регистрация: 23.05.2010
Адрес: Москва
Сообщения: 29
Репутация: 10
По умолчанию

там без скобки))))
я опечаталась)))
Ответить с цитированием
  #12  
Старый 01.06.2010, 12:12
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Тогда другое дело. На печать будет выведено я думаю следующее:
Сначала результат выполнения процедуры:
5 6 7 8
потом уже те значения, что в основном теле программы:
6 2 3 4
но поскольку в процедуру значение переменной а передается как ссылка, то а будет равно значению переприсвоенному в процедуре. Там хитро накручено.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #13  
Старый 01.06.2010, 12:13
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

Правильный и красивый код:

Код:
program C1; {название программы}
var a,b,c,d:integer; {объявление переменных}

procedure P(var b:integer;c:integer); {объявляем процедуру в которую передаеться два параметра b и c}
var d:integer;{объявление переменных в процедуре, т.е. локальная переменная}
begin 
   a:=5; {присваиваем переменной а значение 5  }
   b:=6;
   c:=7;
   d:=8;
   writeln(a,b,c,d); {выводим на экран переменные a,b,c,d}
end;

begin {начало самой программы}
   a:=1;{присваиваем переменной а значение 1  }
   b:=2;
   c:=3;
   d:=4;
   P(a,b);{вызываем процедуру и передаем в нее переменные a b}
   writeln(a,b,c,d); {выводим на экран переменные a,b,c,d}
end.

сперва выдаст 6678
потом 6234
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #14  
Старый 01.06.2010, 12:24
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Страдалецъ
Там хитро накручено.
Там не хитро накручено, там благодяря глобальным переменным и идиотскому вызову процедуры P внутри нее (процедуры P) потрится значение переменной а.
Ну а результат уже рассказал friz
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #15  
Старый 01.06.2010, 12:33
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

И я о том-же.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:37.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025