Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 416
от 01.07.2007, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 243, Экспертов: 58
В номере:Вопросов: 2, Ответов: 7


Вопрос № 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 не нужно указывать:
· имя строки, из которой должен извлекаться копируемый фрагмент,
· позицию в строке, начиная с которой будет копироваться фрагмент,
· число копируемых символов;
· имя строки, в которую копируется данный фрагмент
· имя функции.
Отправлен: 25.06.2007, 22:14
Вопрос задал: Торгов Иван Владимирович (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: 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

Конечный
1 1 2
3 4 4
5 7 8

Приложение:

Отправлен: 25.06.2007, 23:03
Вопрос задал: Mitusov Dmitrij Vlad (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: 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

Отвечает: Louken
Здравствуйте, Mitusov Dmitrij Vlad!

Приятно, что моя программа Вам пригодилась.
В массив a1 я добавил еще одно измерение, в котором сохраняются значение и индексы i и j исходного, потом происходит сортировка и вывод в файл.
Пришлось добавить в сортировке еще одно условие, без него происходит неправильный вывод в файл индексов i и j.
Удачи.

Приложение:

Ответ отправил: Louken (статус: 8-ой класс)
Ответ отправлен: 29.06.2007, 23:22


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное