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

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


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

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

Выпуск № 477
от 26.10.2007, 19:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 241, Экспертов: 37
В номере:Вопросов: 3, Ответов: 6


Вопрос № 106193: Здравствийте, помогите пожалуйста! Мне нужно написать програму в Pascal, которая вычисляет разность двух чисел(в 10 системе исчисления) до 40 цифр в каждом(при том они могут быть разной длины и могут быть как положительные так и отрицательные). Ч...
Вопрос № 106194: Я знаю, что Вы легко решите задания: 1. Что будет выведено на экран в результате выполнения следующей программы. (Известно, что код символа ‘с’ равен 99). Var c:char; Begin c:=’ф’; writeln(c); writeln(‘c’); Writeln(pred( ...
Вопрос № 106195: Тема «Операторы цикла, сложные типы данных» Задание №1. Какие символы входят в множество А после выполнения следующей последовательности операторов? Var A,B,C:set of char; i:byte; Begin A:=[‘a’,’b’,’c’]; For i:=1 to 10 do...

Вопрос № 106.193
Здравствийте, помогите пожалуйста!
Мне нужно написать програму в Pascal, которая вычисляет разность двух чисел(в 10 системе исчисления) до 40 цифр в каждом(при том они могут быть разной длины и могут быть как положительные так и отрицательные). Числа вводятся с клавиатуры.
Заранее спасибо.
Отправлен: 20.10.2007, 21:10
Вопрос задала: Arieta (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Витек
Здравствуйте, Arieta!
Только решение, без проверки на количество символов, и при выводе вывожу весь массив с нулевыми значениями. Извини просто нет времени все красиво оформить.
var mas1,mas2,res:array [1..41] of integer;
i,dc,ed,m1,m2,code:integer;
s:string[41];
begin
m1:=1;
m2:=m1;
writeln('Ukagite chislo 1: ');
readln(s);
for i:=length(s)-1 downto 0 do
begin
if s[i+1]='-' then
m1:=-1
else
val(s[i+1],mas1[length(s)-i],code);
end;
writeln('Ukagite chislo 2: ');
readln(s);
for i:=length(s)-1 downto 0 do
begin
if s[i+1]='-' then
m2:=-1
else
val(s[i+1],mas2[length(s)-i],code);
end;
dc:=0;
for i:=1 to 40 do
begin
ed:=abs(dc+m1*mas1[i]-m2*mas2[i]);
dc:=ed div 10;
res[i]:=ed mod 10;
end;
writeln;
for i:=40 downto 1 do
write(res[i]);
readln;
end.
---------
ohne fleis, keine preis
Ответ отправил: Витек (статус: 4-ый класс)
Ответ отправлен: 22.10.2007, 11:36
Оценка за ответ: 5


Вопрос № 106.194
Я знаю, что Вы легко решите задания:
1. Что будет выведено на экран в результате выполнения следующей программы. (Известно, что код символа ‘с’ равен 99).
Var c:char;
Begin
c:=’ф’;
writeln(c);
writeln(‘c’);
Writeln(pred( c),’ ‘, char(ord(‘c’));
End.
2. Чему будет равно значение переменной b при а=10 после выполнения следующего участка программы
if (a div 5) mod 2=0 then b:=sqrt(а*10)+5
else b:=sqr(a-5)-6;
3. Практическое задание. Заданы три вещественных числа, определить, что больше: сумма или произведение этих чисел?
Отправлен: 20.10.2007, 21:16
Вопрос задал: Сараев Лаврентий Александрович (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Verena
Здравствуйте, Сараев Лаврентий Александрович!
1. Выведется следующее:
ф - это от writeln (c) (выводится содердимое переменной)
с - это от writeln ('c') (выводится заданный символ)
у с - здесь "у" - предыдущая буква алфавита (перед "ф"), это результат функции pred, которая возвращает предыдущее значение аргумента, а символ "с" сначала переводится в свой код, потом обратно в символ
2. 10 целочисленно делим на 5, получаем 2, остаток от деления 2 на 2 (оператор mod) равен 0, значит условие if-а выполняется, идём по ветке then, получаем b равное корню из 10*10 (это 10) плюс 5, то есть после всего этого b=15.
3. Вещественное число - объявим типом real. Вся задача сводится к одному if-у.

Var a, b, c: real;
begin
readln (a, b, c);
if (a+b+c)>(a*b*c) then writeln ('Сумма больше')
else if (a+b+c)<(a*b*c) then writeln ('Произведение больше')
else writeln ('Они равны');
end.

Удачи!
---------
Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: Студент)
Ответ отправлен: 20.10.2007, 21:41
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Очень внятный ответ и главное понятно расписано всё по деталям! ЭТО ПЯТЬ!

Отвечает: Pavl
Здравствуйте, Сараев Лаврентий Александрович!
1. writeln(c) - вывод значения с - это ф;
writeln('c') - выведется с;
writeln(pred(c)) - выведется буква у;
ord('c') - код символа с;
2. 10/5=2; 2/2=0; b = (корень из (10*10)) +5 = 15
b=15
3. вот программа

Приложение:

Ответ отправил: Pavl (статус: 1-ый класс)
Ответ отправлен: 21.10.2007, 12:33
Оценка за ответ: 4
Комментарий оценки:
1. первое правильно, но понял я это только когда прочитал варианты др. участников.
2. правильно.
3. Есть ошибки.
Я поставил 4 а не 5 из-за 3-го вопроса. Всё-равно спасибо и ВАМ, что хотели помочь.

Отвечает: Артём1983
Здравствуйте, Сараев Лаврентий Александрович!
Результатом выполнения первой программы будет
ф
с
у с
Результатом второй программы будет
15
Код третьей задачки смотрите в приложении.(это ответ на Ваш вопрос 104080)

Приложение:

---------
Программирование - дело Путное!

Ответ отправил: Артём1983 (статус: 5-ый класс)
Ответ отправлен: 21.10.2007, 12:46
Оценка за ответ: 5
Комментарий оценки:
Первое и второе понял только с пояснениями других, а вот за 3-е задание СПАСИБО! Подкорректируйте пожалуйста мой текст 1-ой программы, т.к. я сам не понял что там мне задали в школе(есть ошибки или нет-незнаю)и напишите.

Отвечает: Витек
Здравствуйте, Сараев Лаврентий Александрович!
1) ф
с
у b
2) 15
---------
ohne fleis, keine preis
Ответ отправил: Витек (статус: 4-ый класс)
Ответ отправлен: 22.10.2007, 08:22
Оценка за ответ: 4
Комментарий оценки:
неподробно, 3-го нету.


Вопрос № 106.195
Тема «Операторы цикла, сложные типы данных»

Задание №1. Какие символы входят в множество А после выполнения следующей последовательности операторов?
Var A,B,C:set of char;
i:byte;
Begin
A:=[‘a’,’b’,’c’];
For i:=1 to 10 do A:=A+[‘d’];
B:=[];
A:=B+А;
C:=[‘a’,’d’];
A:=C*A;
End.

Задание №2. В результате выполнения фрагмента программы на экран должно быть выведено среднее арифметическое 10 введенных чисел. Выберите правильный фрагмент.
а) Var I,x,s:integer;
Begin
Read(x);
S:=0;
For I:=1 to 10 do
S:=s+x;
writeln(s/10:4:2);
end.
b) Var I,x,s:integer;
Begin
S:=0;
For I:=1 to 10 do
Read(x);
S:=s+x;
writeln(s/10:4:2);
end.
c) Var I,x,s:integer;
Begin
S:=0;
For I:=1 to 10 do
begin
Read(x);
S:=s+x;
End;
writeln(s/10:4:2);
end.
d) Var I,x,s:integer;
Begin
S:=0;
For I:=1 to 10 do
begin
Read(x);
S:=s/10+x;
End;
writeln(s:4:2);
end.

Задание №3. В результате выполнения программы на экран должны быть выведены значения функции y=x3+2x, для значений х, лежащих в диапазоне [1;3] с шагом 0,2. Выберите правильный фрагмент.
а) Var x,y:real;
Begin
x:=1;
While x<=3 do
begin
y:=sqr(x)*x+2*x;
writeln(y:4:2);
end;
end.
b) Var x,y:real;
Begin
X:=1;
While x<=3 do
X:=x+0.2;
y:=sqr(x)*x+2*x;
writeln(y:4:2);
end.
c) Var x,y:real;
Begin
X:=1;
While x<=3 do
begin
y:=sqr(x)*x+2*x;
writeln(y:4:2);
x:=x+0.2;
end;
end.
d) Var x,y:real;
Begin
X:=1;
While x=3 do
begin
y:=sqr(x)*x+2*x;
writeln(y:4:2);
x:=x+0.2;
end;
end.
e) Var x,y:real;
Begin
X:=1;
While x<=3 do
begin
y:=sqr(x+0.2)*(x+0.2)+2*(x+0.2);
writeln(y:4:2);
end;
end.

Задание №4. Требуется найти и вывести на экран сумму четных элементов массива из 10 чисел. Массив заполняется случайными числами. Определите правильный вариант программы.
а) Var a:array[1..10] of integer;
s,i:integer;
Begin
for i:=1 to 10 do a[i]:=random(100);
s:=0;
for i:=1 to 10 do
s:=s+a[i];
writeln(s);
end.
b) Var a:array[1..10] of integer;
s,i:integer;
Begin
for i:=1 to 10 do a[i]:=random(100);
s:=0;
for i:=1 to 10 do
if a[i] mod 2 =0 then
s:=s+a[i];
writeln(s);
end.
c) Var a:array[1..10] of integer;
s,i:integer;
Begin
for i:=1 to 10 do a[i]:=random(100);
s:=0;
for i:=1 to 10 do
if a[i] div 2 =0 then
s:=s+a[i];
writeln(s);
end.
d) Var a:array[1..10] of integer;
s,i:integer;
Begin
for i:=1 to 10 do a[i]:=random(100);
s:=0;
for i:=1 to 10 do
begin
if a[i] mod 2 =0 then
s:=s+a[i];
writeln(s);
end;
end.

Задание №5. Введите в строку ответа строку s, которая будет выведена на экран в результате выполнения следующей программы.
Var s,s1:string[20];
m, i:integer;
Begin
s1:=’karabas’;
s:=’barabas’
if s>s1 then s:=s+’-‘+s1
else s:=s1+’-‘+s;
writeln(s);
end.
Отправлен: 20.10.2007, 21:17
Вопрос задал: Сараев Лаврентий Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Витек
Здравствуйте, Сараев Лаврентий Александрович!
1) a,d
2) c
3) c
4) b
5) karabas-barabas
Только ответить? Или что-то еще?
---------
ohne fleis, keine preis
Ответ отправил: Витек (статус: 4-ый класс)
Ответ отправлен: 22.10.2007, 08:18


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

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

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

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

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


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


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

В избранное