Login
Верный ответ? Pascal
26.04.15 17:03
Добрый день!
Проверьте правильность ответов.
Die Funktion max findet in einem Feld ParFeld von integer-Werten das Maximum der Feldelemente ParFeld[von], ..., ParFeld[bis].Wir geben folgende Deklaration an:
function max (
ParFeld: tFeld;
von, bis: tIndex): integer;
{ bestimmt das Maximum im Teilfeld von ParFeld[von]
bis ParFeld[bis] }
var
Wert : integer;
i : tIndex;
begin
Wert := ParFeld[von];
for i := von + 1 to bis do
if ParFeld > Wert then
Wert := ParFeld;
max := Wert
end; { max }
Für welche der folgenden Programmstücke verlassen die Werte der aktuellen Parameter bei dem Aufruf bzw. den Aufrufen der Funktion max nicht den durch die formalen Parameter definierten gültigen Wertebereich, egal welche integer-Werte im Feld vorkommen? Gehen Sie dabei von folgenden Konstanten-, Typ- und Variablenvereinbarungen aus:
const
GRENZE = 10;
type
tIndex = 1..GRENZE;
tFeld = array [tIndex] of integer;
var
Feld : tFeld;
w,
w1,
w2 : integer;
A
w := max (Feld, Feld[1], Feld[GRENZE]);
B
w := max (Feld, (GRENZE-1) div 2,
(GRENZE-1) div 2);
C
if max (Feld, 1, (GRENZE-1) div 2) >
max (Feld, (GRENZE+1) div 2, GRENZE)
then
w := max (Feld, 1, (GRENZE-1) div 2)
else
w := max (Feld, (GRENZE+1) div 2, GRENZE);
D
w := max (Feld, 1, GRENZE);
if w <= GRENZE then
write (max (Feld, w, w));
E
w1 := max (Feld, 1, GRENZE);
w2 := max (Feld, 4, GRENZE-1);
if (0 < w2) and (w1 <= GRENZE) then
begin
w := max (Feld, 2, GRENZE);
w := max (Feld, 1, w)
end;
Я отметила A, B, D и E как верные. Это правильно или нет?
Проверьте правильность ответов.
Die Funktion max findet in einem Feld ParFeld von integer-Werten das Maximum der Feldelemente ParFeld[von], ..., ParFeld[bis].Wir geben folgende Deklaration an:
function max (
ParFeld: tFeld;
von, bis: tIndex): integer;
{ bestimmt das Maximum im Teilfeld von ParFeld[von]
bis ParFeld[bis] }
var
Wert : integer;
i : tIndex;
begin
Wert := ParFeld[von];
for i := von + 1 to bis do
if ParFeld > Wert then
Wert := ParFeld;
max := Wert
end; { max }
Für welche der folgenden Programmstücke verlassen die Werte der aktuellen Parameter bei dem Aufruf bzw. den Aufrufen der Funktion max nicht den durch die formalen Parameter definierten gültigen Wertebereich, egal welche integer-Werte im Feld vorkommen? Gehen Sie dabei von folgenden Konstanten-, Typ- und Variablenvereinbarungen aus:
const
GRENZE = 10;
type
tIndex = 1..GRENZE;
tFeld = array [tIndex] of integer;
var
Feld : tFeld;
w,
w1,
w2 : integer;
A
w := max (Feld, Feld[1], Feld[GRENZE]);
B
w := max (Feld, (GRENZE-1) div 2,
(GRENZE-1) div 2);
C
if max (Feld, 1, (GRENZE-1) div 2) >
max (Feld, (GRENZE+1) div 2, GRENZE)
then
w := max (Feld, 1, (GRENZE-1) div 2)
else
w := max (Feld, (GRENZE+1) div 2, GRENZE);
D
w := max (Feld, 1, GRENZE);
if w <= GRENZE then
write (max (Feld, w, w));
E
w1 := max (Feld, 1, GRENZE);
w2 := max (Feld, 4, GRENZE-1);
if (0 < w2) and (w1 <= GRENZE) then
begin
w := max (Feld, 2, GRENZE);
w := max (Feld, 1, w)
end;
Я отметила A, B, D и E как верные. Это правильно или нет?
NEW 26.04.15 18:08
in Antwort *Inna 26.04.15 17:03
Тут вообще то возникает масса вопросов, вот только часть
1. Откуда появилась фунция мах, если из задания то правильно ли переписана?
2. Задания и код написаны непонятно кем, если это преподаватель то нужно срочно искать ему замену.
Теперь по вариантам ответов, хотя я так и не понял зачем ему нужно давать подобные задания в начале обучения.
А. Ответ не имеет смысла, без знания конкретных значений массива. В общем случае будет постоянно приводить к ошибкам
Б. В любом случае выдаст просто значение одного элемента.
С. Кривой код который нельзя показывать студентам, но ничего неправильного в параметрах нет.
if max (Feld, 1, 4) > max (Feld, 5, 10) then
w := max (Feld, 1, 4)
else
w := max (Feld, 5, 10);
Д. Е. Ищется максимум, который используется после как индех. Тоже полный идиотизм.
Если подстраиваться под эту глупость то Ваши варианты ответов не совпадают с возможно ожидаемыми.
Допишите отчего Вы так решили?
1. Откуда появилась фунция мах, если из задания то правильно ли переписана?
2. Задания и код написаны непонятно кем, если это преподаватель то нужно срочно искать ему замену.
Теперь по вариантам ответов, хотя я так и не понял зачем ему нужно давать подобные задания в начале обучения.
А. Ответ не имеет смысла, без знания конкретных значений массива. В общем случае будет постоянно приводить к ошибкам
Б. В любом случае выдаст просто значение одного элемента.
С. Кривой код который нельзя показывать студентам, но ничего неправильного в параметрах нет.
if max (Feld, 1, 4) > max (Feld, 5, 10) then
w := max (Feld, 1, 4)
else
w := max (Feld, 5, 10);
Д. Е. Ищется максимум, который используется после как индех. Тоже полный идиотизм.
Если подстраиваться под эту глупость то Ваши варианты ответов не совпадают с возможно ожидаемыми.
Допишите отчего Вы так решили?
NEW 26.04.15 18:27
in Antwort AlexNek 26.04.15 18:08, Zuletzt geändert 26.04.15 18:30 (*Inna)
Теперь Вы видите, с чем я имею дело ))
Это задание было переписано мной один в один.
Откуда я взяла эти ответы? Вот это предложение навело меня на эту мысль: "Für welche der folgenden Programmstücke verlassen die Werte der aktuellen Parameter bei dem Aufruf bzw. den Aufrufen der Funktion max nicht den durch die formalen Parameter definierten gültigen Wertebereich, egal welche integer-Werte im Feld vorkommen? "
Извиняюсь, что код писала без отступов, очень спешила.
Это задание было переписано мной один в один.
Откуда я взяла эти ответы? Вот это предложение навело меня на эту мысль: "Für welche der folgenden Programmstücke verlassen die Werte der aktuellen Parameter bei dem Aufruf bzw. den Aufrufen der Funktion max nicht den durch die formalen Parameter definierten gültigen Wertebereich, egal welche integer-Werte im Feld vorkommen? "
Извиняюсь, что код писала без отступов, очень спешила.
NEW 26.04.15 18:42
Тогда я бы подал в суд на возврат денег за обучение и на запрет обучать людей программированию.
Понятно то что Вы исходили из задания, но вот отчего Вы решили что этот данный пример "правильный", а этот нет? Что явилось решающим фактором? Интересен именно ход мыслей.
Надеюсь, что Вы уже усвоили различие межде формальными и фактическими параметрами(Aktuel, Formal)
in Antwort *Inna 26.04.15 18:27
В ответ на:
Это задание было переписано мной один в один.
Это задание было переписано мной один в один.
Тогда я бы подал в суд на возврат денег за обучение и на запрет обучать людей программированию.
Понятно то что Вы исходили из задания, но вот отчего Вы решили что этот данный пример "правильный", а этот нет? Что явилось решающим фактором? Интересен именно ход мыслей.
Надеюсь, что Вы уже усвоили различие межде формальными и фактическими параметрами(Aktuel, Formal)
NEW 26.04.15 18:50
in Antwort AlexNek 26.04.15 18:42
Здесь при вызове ф-ии её значение не должно превышать установленных границ области значений. А значения, как я поняла, задаются актуальными параметрами в скобках.
NEW 26.04.15 20:39
Совершенно правильно, если еще дополнить - при конкретном вызове функции.
А вот тут уже мешанина.
Функция при ее вызове возвращает какое то одно значение, в данном случае - число типа интегер. Какое оно будет, нас в принципе не волнует. Что нибудь да получим, прога не сковырнётся.
А вот если функции неверные параметры зададим, то проге наступит каюк. Вот нужно и попытаться определить варианты где могут быть неверные параметры.
Но задание так криво сформулировано, что понять его при первом прочтении довольно сложно.
in Antwort *Inna 26.04.15 18:50
В ответ на:
А значения, как я поняла, задаются актуальными параметрами в скобках.
А значения, как я поняла, задаются актуальными параметрами в скобках.
Совершенно правильно, если еще дополнить - при конкретном вызове функции.
В ответ на:
при вызове ф-ии её значение не должно превышать установленных границ области значений
при вызове ф-ии её значение не должно превышать установленных границ области значений
А вот тут уже мешанина.
Функция при ее вызове возвращает какое то одно значение, в данном случае - число типа интегер. Какое оно будет, нас в принципе не волнует. Что нибудь да получим, прога не сковырнётся.
А вот если функции неверные параметры зададим, то проге наступит каюк. Вот нужно и попытаться определить варианты где могут быть неверные параметры.
Но задание так криво сформулировано, что понять его при первом прочтении довольно сложно.
NEW 27.04.15 17:04
in Antwort *Inna 26.04.15 18:50, Zuletzt geändert 27.04.15 19:44 (BorisL0)
Вначале перепишу формулировку задания на русском:
В каких примерах кода значения параметров вызова/вызовов ф-ции НЕ выходят за
границы области для любых значений массива (поля). Исходите при этом из следующих определений констант, типов и т.д.
А. Могут выйти, если Feld[1] меньше единицы.
B. Нормально, не выходят, оба равны 4.
C. Нормально, не выходят.
D. Могут выйти, если например в Felde все значения отрицательные, тогда и их макс. значение=w тоже отрицательное и меньше GRENZE. Тогда при последнем
вызове ф-ции выйдут за пределы.
E. Нормально.
Т.е. я бы отметил B,C,E.
В каких примерах кода значения параметров вызова/вызовов ф-ции НЕ выходят за
границы области для любых значений массива (поля). Исходите при этом из следующих определений констант, типов и т.д.
А. Могут выйти, если Feld[1] меньше единицы.
B. Нормально, не выходят, оба равны 4.
C. Нормально, не выходят.
D. Могут выйти, если например в Felde все значения отрицательные, тогда и их макс. значение=w тоже отрицательное и меньше GRENZE. Тогда при последнем
вызове ф-ции выйдут за пределы.
E. Нормально.
Т.е. я бы отметил B,C,E.
NEW 28.04.15 12:45
in Antwort BorisL0 27.04.15 17:04
Вообще то не совсем верно.
Проверьте еще раз "Е"
И задание звучит немного по другому
"В каких примерах кода значения фактических параметров функции НЕ выходят за
границы областей определенных формальными параметрами (для любых значений элементов массива)"
Проверьте еще раз "Е"
И задание звучит немного по другому
"В каких примерах кода значения фактических параметров функции НЕ выходят за
границы областей определенных формальными параметрами (для любых значений элементов массива)"
NEW 28.04.15 13:28
in Antwort AlexNek 28.04.15 12:45, Zuletzt geändert 28.04.15 13:30 (BorisL0)
По-моему, мой и Ваш переводы достаточно близки по смыслу :)
По пункту E: первые 3 вызова ф-ции проблем вызвать не могут.
Рассмотрим 4й:
max (Feld, 1, max(Feld,2,Grenze) )
max(Feld,2,Grenze) точно больше либо равен, чем максимум по меньшему ("более узкому") множеству 4, GRENZE-1, который равен w2.
Значит, max(Feld,2,Grenze)>=1 (по условию if-а).
С другой стороны, max(Feld,2,Grenze) менее либо равен, чем максимум по всему множеству 1:Grenze, который равен w1.
Значит, max(Feld,2,Grenze)<=Grenze (по условию if-а).
Значит, параметры последнего вызова ф-ции тоже в порядке, лежат в интервале [1:Grenze].
По пункту E: первые 3 вызова ф-ции проблем вызвать не могут.
Рассмотрим 4й:
max (Feld, 1, max(Feld,2,Grenze) )
max(Feld,2,Grenze) точно больше либо равен, чем максимум по меньшему ("более узкому") множеству 4, GRENZE-1, который равен w2.
Значит, max(Feld,2,Grenze)>=1 (по условию if-а).
С другой стороны, max(Feld,2,Grenze) менее либо равен, чем максимум по всему множеству 1:Grenze, который равен w1.
Значит, max(Feld,2,Grenze)<=Grenze (по условию if-а).
Значит, параметры последнего вызова ф-ции тоже в порядке, лежат в интервале [1:Grenze].
NEW 28.04.15 13:39
in Antwort BorisL0 28.04.15 13:28, Zuletzt geändert 28.04.15 13:42 (AlexNek)
может мы о разных примерах говорим?
можно было подискутировать, но не вижу большого смысла
В ответ на:
w1 := max (Feld, 1, GRENZE);
w2 := max (Feld, 4, GRENZE-1);
if (0 < w2) and (w1 <= GRENZE) then begin
w := max (Feld, 2, GRENZE);
w := max (Feld, 1, w)
end;
В ответ на:
По-моему, мой и Ваш переводы достаточно близки по смыслу
По-моему, мой и Ваш переводы достаточно близки по смыслу
можно было подискутировать, но не вижу большого смысла
NEW 28.04.15 13:41
in Antwort AlexNek 28.04.15 13:39
Именно об этом. Я просто в последний вызов ф-ции записал значение w, присвоенное строкой выше.
NEW 28.04.15 13:58
in Antwort BorisL0 28.04.15 13:41
Да Вы правы.
Для меня эта запись уже явлется недопустимой в проекте. Потому как if могут изменить в любое время
w := max (Feld, 2, GRENZE);
w := max (Feld, 1, w)
И для отрицательных значений было бы верно, но их отсекли другой проверкой.
Для меня эта запись уже явлется недопустимой в проекте. Потому как if могут изменить в любое время
w := max (Feld, 2, GRENZE);
w := max (Feld, 1, w)
И для отрицательных значений было бы верно, но их отсекли другой проверкой.
NEW 28.04.15 15:20
in Antwort *Inna 26.04.15 17:03
За именование переменных и комментарии на немецком я бы отлучал от компьютера (можно и выпороть разок).
NEW 29.04.15 00:17
in Antwort UVV 28.04.15 15:20
Ой любят тут это делать. Ладно комменты на родном языке еще можно понять.
NEW 29.04.15 08:12
Где тут и на каком родном? Комменты должны быть на английском языке. Точка. Ни русского, ни немецкого там быть не должно. Кто считает иначе - вон из профессии.
in Antwort AlexNek 29.04.15 00:17
В ответ на:
Ой любят тут это делать. Ладно комменты на родном языке еще можно понять.
Ой любят тут это делать. Ладно комменты на родном языке еще можно понять.
Где тут и на каком родном? Комменты должны быть на английском языке. Точка. Ни русского, ни немецкого там быть не должно. Кто считает иначе - вон из профессии.
NEW 29.04.15 18:09
ну форум то вроде "германский", здесь в Германии, на немецком имелось в виду.
Не знаю конечно сколько именно процентов немецких проггеров нужно тогда уволить
и уж гораздо больше количество наших в ЭксСССР.
Я бы не стал судить так категорично.
in Antwort UVV 29.04.15 08:12
В ответ на:
Где тут и на каком родном?
Где тут и на каком родном?
ну форум то вроде "германский", здесь в Германии, на немецком имелось в виду.
В ответ на:
Кто считает иначе - вон из профессии.
Кто считает иначе - вон из профессии.
Не знаю конечно сколько именно процентов немецких проггеров нужно тогда уволить

Я бы не стал судить так категорично.
NEW 29.04.15 23:39
Форум русскоязычный вроде.
Только так и надо судить, никак иначе. Профессия не потеряет от этого. Тоже на немецком пишешь комменты что ле?
in Antwort AlexNek 29.04.15 18:09
В ответ на:
ну форум то вроде "германский", здесь в Германии, на немецком имелось в виду.
ну форум то вроде "германский", здесь в Германии, на немецком имелось в виду.
Форум русскоязычный вроде.
В ответ на:
Не знаю конечно сколько именно процентов немецких проггеров нужно тогда уволить и уж гораздо больше количество наших в ЭксСССР.
Я бы не стал судить так категорично.
Не знаю конечно сколько именно процентов немецких проггеров нужно тогда уволить и уж гораздо больше количество наших в ЭксСССР.
Я бы не стал судить так категорично.
Только так и надо судить, никак иначе. Профессия не потеряет от этого. Тоже на немецком пишешь комменты что ле?
NEW 30.04.15 00:12
угу - germany.ru
Нет конечно.
Но есть достачное количество терминов которые постоянно слышишь на работе и абсолютно все их знают там, а вот как они правильно переводятся на английский может никто не знать.
В этом случае приходится оставлять немецкий коммент и внизу писать английский, ну а немцам еще проще они свой термин по любому знают.
in Antwort UVV 29.04.15 23:39
В ответ на:
Форум русскоязычный вроде.
Форум русскоязычный вроде.
угу - germany.ru
В ответ на:
Тоже на немецком пишешь комменты что ле?
Тоже на немецком пишешь комменты что ле?
Нет конечно.
Но есть достачное количество терминов которые постоянно слышишь на работе и абсолютно все их знают там, а вот как они правильно переводятся на английский может никто не знать.
В этом случае приходится оставлять немецкий коммент и внизу писать английский, ну а немцам еще проще они свой термин по любому знают.
NEW 30.04.15 00:25
Мы на разных языках говорим, вероятно. Какие такие термины в программировании могут быть не на английском?
В этом случае стоит выучить английский. Если мне тебе приходится это объяснять, значит фирма у вас несерьёзная.
in Antwort AlexNek 30.04.15 00:12
В ответ на:
Но есть достачное количество терминов которые постоянно слышишь на работе и абсолютно все их знают там, а вот как они правильно переводятся на английский может никто не знать.
Но есть достачное количество терминов которые постоянно слышишь на работе и абсолютно все их знают там, а вот как они правильно переводятся на английский может никто не знать.
Мы на разных языках говорим, вероятно. Какие такие термины в программировании могут быть не на английском?
В ответ на:
В этом случае приходится оставлять немецкий коммент и внизу писать английский, ну а немцам еще проще они свой термин по любому знают.
В этом случае приходится оставлять немецкий коммент и внизу писать английский, ну а немцам еще проще они свой термин по любому знают.
В этом случае стоит выучить английский. Если мне тебе приходится это объяснять, значит фирма у вас несерьёзная.