Другие языки программирования и технологии

Задачи по Pascal

Здрасти...: )
Такая проблема:
Не был на первых лекциях по паскалю, завтра контрольная.. .
Люди, помогите пожалуйста, на примере одной, любой задачи, напишите решение.. . прошу.. .
В долгу не останусь..)
Два оператора: write и writeln. У них назначение одно: вывести что-либо на экран. Отличие в том, что оператор write просто выводит на экран, а writeln - выводит на экран, затем переводит позицию курсора (каретки) на следующую строку.
В скобках этих операторов можно написать:
- свой (любой) текст (его следует писать в апострофах)
- переменные (пишутся через запятую) (при написании в скобках какой-либо переменной на экран выводится не имя переменной, а ее значение)
Также между своим текстом и переменными ставится запятая.

Разберем несколько примеров.
Пусть a=245; b=-435; c=35.126;
1.write ('a', b);
- вывод своего текста 'а'
- вывод значения б, т. е. '-435'.
- результат: 'а-435';

2.writeln (a:5, 'c=', c:7:2);
- вывод значения a, т. е. '245'. Деление на 5 означает выравнивание на экране, т. е. резервирование места на 5 символов (' 245').
- вывод своего текста 'c='
- вывод значения с, т. е. '35.126'. Деление на 7 означает выравнивание на экране, т. е. резервирование места на 7 символов, деление на 2 означает количество символов, которые необходимо отобразить после запятой. Округление до сотых. В данном случае у нас 3 цифры после запятой, значит последняя цифра (6) не выведется на экран. Т. к. 6>=5, то 35.126 округляем до 35.13 (' 35.13').
- переход на следующую строку
- результат: ' 245c= 35.13';

3. write ('b=', b:4, a:6);
- вывод своего текста 'b='
- вывод значения b с резервированием места ('-435'), но, т. к. число -435 состоит из 4-х символов, то в данном случае резервирование места бессмысленно и никак не влияет на вывод на экран
- вывод значения a (' 245')
- результат: 'b=-435 245';

4. write ('a-b':4, c*2:6:2);
- вывод своего текста 'a-b' с выравниванием (' a-b')
- вывод удвоенного значения c ('70.252'), также резервируем место для шести символов и округляем результат до сотых (' 70.25')
- результат: ' a-b 70.25';

Вот несколько задач.

Program Chisla;
uses crt;
var a,b,c,d,S:real;
begin
clrscr;
writeln (' Vvedite 4 lubix chisla');
readln (a,b,c,d);
S:=0;
if a>0 then S:=S+1;
if b>0 then S:=S+1;
if c>0 then S:=S+1;
if d>0 then S:=S+1;
writeln (' Kol-vo polojitelnix chisel -> ',S:0:0);
readln
end.

Программа с использованием процедуры:

Program Deamon;
uses crt;
var i,n,Pr,Sum:integer;
Mas:array[1..20] of integer;
procedure MyProc(aMas:array of integer; var aPr,aSum:integer);
var ai:integer;
begin
aPr:=1; aSum:=0;
For ai:=Low(aMas) to High(aMas) do
begin
if aMas[ai]<0
then aPr:=aPr*aMas[ai]
else inc(aSum,aMas[ai]);
end;
end;
begin
clrscr;
writeln (' Vvedite 20 cisel ->');
For i:=1 to 20 do
begin
read(n);
Mas:=n;
end;
MyProc(Mas,Pr,Sum);
writeln (' Proizvedenie otricatelnix chisel = ',Pr);
writeln (' Summa polojitelnix chisel = ',Sum);
readkey;
end.
РШ
Роман Шафранов
1 572
Лучший ответ
без задачи тока здачи ))
Oleg 777
Oleg 777
8 685
Где задачи?