Вопрос № 92894: Ответьте пожалуйста на вопрос жизни и смерти! Мне уже завтра надо сдать ответ учителю, а я не могу сделать! Помогите!!!
Какое значение будет иметь переменная z после выполнения операторов
z:=0
if x>0 then if y>0 then z:=1 else ...Вопрос № 92899: Здраствуйте, как при сортировке не потерять индексы элементов, если мы переводим двумерный массив в одномерный, сортируем, а потом обратно переводим в двумерный?
Исх массив
5 1 7
1 8 4
2 3 4
Конечный
1 1 2
3 4 4
..
Вопрос № 92.894
Ответьте пожалуйста на вопрос жизни и смерти! Мне уже завтра надо сдать ответ учителю, а я не могу сделать! Помогите!!!
Какое значение будет иметь переменная z после выполнения операторов
z:=0
if x>0 then if y>0 then z:=1 else z:=2
при следующих значениях переменных х и у:
а) х=у=1; б) х=1, у=-1; в) х=-1, у=1.
Дана последовательность операторов, вычисляющих факториал f числа n, которая содержит пять ошибок. Найдите эти ошибки, предварительно записав операторы в правильном виде.
k:=1; f:=0;
while k<n do f=f*k
k:=k+1,
Основное различие между процедурами и функциями заключается в том, что:
в результате работы процедуры можно получить любое количество переменных, а функции - одно;
в процедуре допускается описание локальных переменных, а в функции - нет;
в программе обращение к процедуре может осуществляться многократно, тогда как к функции только один раз;
в процедуре допускается использование глобальных переменных, а в функции - нет.
Вызывая функцию Copy не нужно указывать:
· имя строки, из которой должен извлекаться копируемый фрагмент,
· позицию в строке, начиная с которой будет копироваться фрагмент,
· число копируемых символов;
· имя строки, в которую копируется данный фрагмент
· имя функции.
Отвечает: Nazar__D
Здравствуйте, Торгов Иван Владимирович!
1)x=y=1 ответ 1, потому что x>0,входим в цыкл, у тоже больше 0;
х=1, у=-1 ответ 2,потому что оператор else относится к последнему оператору if-then-else.
х=-1, у=1 ответ 0, потому что в первый цыкл не заходим, поскольку x<0(не выыполняется условие вхождения в цыкл)
2)свои исправления отметил {!!!} Вроде всё нашел, но может че упустил... :) Проверьте еще раз... :)
k:=1; f:={!!!}1;
while k<n do {!!!}begin
f=f*k {!!!};
k:=k+1 {!!!};
{!!!}end;
3) в результате работы процедуры можно получить любое количество переменных, а функции - одно, но !!! результат роботы функции можно присваивать, а процедуры нет:
...procedure proc (x,y)- какая-то процедура
function fun (a,b):integer- какая-то фукция
... k: integer;
k:=proc (x,y) - нельзя
k:= fun (a,b) - можно!
4)Функция Сopy(S, Npoz, Kol), где
S - строка;
Npoz - символ, с которого начинается копирование;
Kol - Количество символов, которие надо скопировать.
Соответственно, правильним есть ответ:
имя строки, в которую копируется данный фрагмент
Помог, чем мог... :)
--------- Я - українець!
Ответ отправил: Nazar__D (статус: 2-ой класс)
Ответ отправлен: 25.06.2007, 22:40
Отвечает: Vassea
Здравствуйте, Торгов Иван Владимирович!
a) 1>0 1>0 => z=1
b) 1>0 -1<0 => z=2
c) -1<0 => сравнивать у уже не надо Происходит выход из условия => z=0 то что присваивалось до условия
2) k:=1; f:= 1 ; { так как при умножении на ноль любого числа получится 0}
while k<=n { иначе будет считаться (n-1)!} do
begin {иначе не будет увеличиваться k}
f=f*k;
k:=k+1;
end;
3)Основное различие между процедурами и функциями заключается в том, что:
в результате работы процедуры можно получить любое количество переменных, а функции
- одно;
4) имя строки, в которую копируется данный фрагмент -- так как функция присваивает это значение
а далее переменная которая присваивает значение функции
st:=copy(sr,1,5);
Ответ отправил: Vassea (статус: 3-ий класс)
Ответ отправлен: 25.06.2007, 22:41
Отвечает: Manager6
Здравствуйте, Торгов Иван Владимирович!
Какое значение будет иметь переменная z после выполнения операторов
z:=0
if x>0 then if y>0 then z:=1 else z:=2
при следующих значениях переменных х и у:
а) х=у=1; б) х=1, у=-1; в) х=-1, у=1.
ОТВЕТ: а)z=1; б) z=2 в)z=0
Дана последовательность операторов, вычисляющих факториал f числа n, которая содержит пять ошибок. Найдите эти ошибки, предварительно записав операторы в правильном виде.
k:=1; f:=0;
while k<n do f=f*k
k:=k+1,
ОТВЕТ:
f:=1; k:=1;
while k<=n do begin
f:=f*k; inc(k);
end;
ответ на 3-ий вопрос:
Основное различие между процедурами и функциями заключается в том, что:
в результате работы процедуры можно получить любое количество переменных, а функции - одно;
в процедуре допускается использование глобальных переменных, а в функции - нет{Этого сам не знаю};
ф-ция возвращает какое-либо значение, что для процедуры не обязательно.
Вызывая функцию Copy нужно указывать:
· имя строки, из которой не должен извлекаться копируемый фрагмент,
· позицию в строке, начиная с которой будет копироваться фрагмент,
· число копируемых символов;
· имя строки, в которую копируется данный фрагмент----------ЭТОТ ОТВЕТ
· имя функции.----------- ЭТОТ ОТВЕТ
Ответ отправил: Manager6 (статус: 1-ый класс)
Ответ отправлен: 25.06.2007, 22:53
Отвечает: Louken
Здравствуйте, Торгов Иван Владимирович!
1) а) z=1 б) z=2 в) z=0
2)
k:=2; {1} f:=1; {2}
while k<={3}n do begin {4}
f:=f*k;
k:=k+1;
end; {5}
3) Между процедурой и функцией только одно отличие, имя функции само является переменной, т.е. это значение можно присваивать другим переменным.
Только учтите что присваивать имени функции значение можно только внутри самой этой функции.
procedure p;
begin
b:=1; {нельзя}
end;
function f: integer;
begin
f:=10;
end;
...
var i: integer;
...
i:=p; {нельзя}
i:=f; {можно}
p:=3; {нельзя}
f:=2; {нельзя}
3)
в результате работы процедуры и функции можно получить любое количество переменных;
в процедуре и функции допускается описание локальных переменных;
в программе и функции обращение к процедуре может осуществляться многократно;
в процедуре и функции допускается использование глобальных переменных.
Т.е. все эти пункты справедливы и для процедур и для функций.
4)
function Copy(S: string; Index: integer; Count: integer): string;
Нужно указать, строку из которой будет копироваться подстрока - S
С какого символа будет копироваться подстрока - Index
Сколько символов будет копироваться из строки S - Count
В результате получаем искомую подстроку.
Вобщем все эти пункты нужны.
Хотя странный какой-то тест/
Ответ отправил: Louken (статус: 8-ой класс)
Ответ отправлен: 25.06.2007, 23:02
Вопрос № 92.899
Здраствуйте, как при сортировке не потерять индексы элементов, если мы переводим двумерный массив в одномерный, сортируем, а потом обратно переводим в двумерный?
Исх массив
5 1 7
1 8 4
2 3 4
Отвечает: Nazar__D
Здравствуйте, Mitusov Dmitrij Vlad!
В принципе,с моей точки зрения, это не нужно, поскольку Вы имеете размер исходного массива, и он такой же, как и итогового. А если у Вас такое задание, что надо запомнить исходное положение элементов, то самый простой (но наверное не самый эффективний) метод - это использование дополнительного массива 2*К, где К - количество элементов массива. Первая колонка - первая координата, вторая колонка - вторая координата. Но не понимаю зачем это Вам - ведь можно просто вводить один массив, а сортировать и выводить в
другом... Наверное, я не до конца понимаю соль вопроса... :)
Если я Вам чем-то помог, то очень хорошо, если нет - извините, пишите ёще,буду рад помочь!
--------- Я - українець!
Ответ отправил: Nazar__D (статус: 2-ой класс)
Ответ отправлен: 25.06.2007, 23:14
Отвечает: Manager6
Здравствуйте, Mitusov Dmitrij Vlad!
чтобы не потерять индексы элеменотов, советую обяъвить дополнительный массив 3х3 типа byte. Затем туда вносить индексы элеметов(придется делать в цикле).
Ответ отправил: Manager6 (статус: 1-ый класс)
Ответ отправлен: 25.06.2007, 23:22
Приятно, что моя программа Вам пригодилась.
В массив a1 я добавил еще одно измерение, в котором сохраняются значение и индексы i и j исходного, потом происходит сортировка и вывод в файл.
Пришлось добавить в сортировке еще одно условие, без него происходит неправильный вывод в файл индексов i и j.
Удачи.
Приложение:
Ответ отправил: Louken (статус: 8-ой класс)
Ответ отправлен: 29.06.2007, 23:22