Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 9
1

Процедура

28.12.2018, 22:08. Показов 964. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, пожалуйста!
Почему программа выводит на экран 1 10 15? Как она считает?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
program Prog;
var x,y,z: integer;
procedure F(var x: integer);
begin
  z:=x+y;
  y:=z+x;
  x:=z+y;
end;
 
begin
  x:=1;
  y:=2;
  z:=3;
    F(z);
      writeln(x:3,y:3,z:3);
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.12.2018, 22:08
Ответы с готовыми решениями:

Процедура
Подскажите, как эту программу реализовать через процедуру? Сама процедура должна складывать...

Процедура
Можете пожалуйста подсказать? Программа должна удалять из каждой строки последовательность...

Процедура
procedure Puzirok ( Var i,j,r,q,w:integer; h,g,k:Mas); const n=15; Begin for i := 1 to n-1 do ...

Процедура Split2
Описать процедуру Split(A, NA, B, NB, C, NC), формирующую по целочисленному массиву A размера NA...

6
0 / 0 / 0
Регистрация: 27.11.2018
Сообщений: 13
28.12.2018, 22:49 2
Если кратко. В программе объявлены 3 глобальные переменные x, y, z соответственно равные 1, 2 и 3.
Значению переменной z присваивается сумма x и y, потом y становится равной сумме икса и уже нового z, и после, иксу присваивается сумма двух получившихся только что значений. После чего все три числа выводятся в консоль.
Кстати, в функцию не нужно передавать параметр, он уже задан как глобальная переменная, это только съедает немного памяти и запутывает читающих твой код
0
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 9
29.12.2018, 10:58  [ТС] 3
если z присваивается сумма x и y, то z=1+2=3
потом y становится равной сумме икса и уже нового z: y=1+3=4
иксу присваивается сумма двух получившихся только что значений: x=3+4=7
тогда на печать должно быть 7 4 3, а получается 1 10 15
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.12.2018, 11:07 4
Вам написали
Цитата Сообщение от 21m3 Посмотреть сообщение
в функцию не нужно передавать параметр, он уже задан как глобальная переменная,
Уберите и выведет 7 4 3.

Добавлено через 5 минут
А если с параметрами, то так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure F(var x,y,z:integer);
begin
  z:=x+y;
  y:=z+x;
  x:=z+y;
end;
var x,y,z: integer;
begin
  x:=1;
  y:=2;
  z:=3;
  F(x,y,z);
  writeln(x:3,y:3,z:3);
end.
0
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 9
29.12.2018, 11:26  [ТС] 5
Зачем мне убирать, если в результате итог меняется?
Вопрос был в том, как он считает 1 10 15
а результат 7 4 3 должен получиться, если следовать вашей логике, что неправильно.
Если убрать var, оставить procedure F(x: integer), то результат 1 8 5

Добавлено через 18 минут
Не надо в коде ничего менять. Как он считает именно при этом коде?
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.12.2018, 11:37 6
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

F(z)
x=1//не меняется
//вместо х будет z
z=z+y=3+2=5
y=z+z=5+5=10
z=z+5+10=15
ответ 1 10 15
0
0 / 0 / 0
Регистрация: 23.12.2018
Сообщений: 9
29.12.2018, 13:53  [ТС] 7
Спасибо! Попробую на разных вариантах.
0
29.12.2018, 13:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2018, 13:53
Помогаю со студенческими работами здесь

Процедура с массивом
Задача:Даны 3 различных массива целых чисел (размер каждого 15 элементов). В каждом массиве найти...

Процедура swap
Поменять значение a,b,c,d так, чтобы они были расположены в порядке возрастания. При помощи...

Процедура функции
Заданы действительный числа a,b,c. Получить : ...

Процедура функции
Заданы действительные числа k,p(сделать с помощью процедуры функции). Посчитать:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru