Vladimir_S |
17.01.2012 12:23 |
Цитата:
Сообщение от Рысена
(Сообщение 654408)
ПРОШУ!!! ПОМОГИТЕ!!! В ЧЕТВЕРГ ЭКЗАМЕН!!! А ЭТО ДОПУСК!!!
|
Понятно. Ну что же - с пробуждением! Надеюсь, Вашему сладкому сну в течение целого семестра никто не мешал? Понимаю: всё было так прекрасно, а тут, откуда ни возьмись - сессия! Ну что же - не оставлять же Вас один на один с этим кровожадным чудовищем... Поможем, ладно. Только вот одно обстоятельство. Итак, Вы последовали твёрдо установившейся на нашем форуме традиции: никогда и при каких обстоятельствах не выдавать тайны языка программирования, на котором следует выполнить задание. А на наши отчаянные просьбы, увещевания, угрозы и т.п. не обращать ни малейшего внимания: не скажу, и всё тут! Ну что же, в таком случае я оставляю выбор за собой, и выбираю Free Pascal. А если у Вас Delphi или даже Pascal ABC, то это - Ваши проблемы.
Цитата:
Сообщение от Рысена
(Сообщение 654408)
А) Дан набор ненулевых чисел; признак его завершения число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числ в наборе отсутствуют, то вывести 0.
|
Код:
Var
a:Integer;
Sum:LongInt;
Begin
Sum:=0;
Repeat
Write('Next element: ');
Readln(a);
If (a>0) and ((a mod 2)=0) then Inc(Sum,a);
Until a=0;
Writeln('Sum = ',Sum);
Readln;
End.
Цитата:
Сообщение от Рысена
(Сообщение 654408)
Б) Написать программу, которая вычисляет наибольший общий делитель 2х целых чисел.
|
Код:
Var
a,b,d,NOD:Word;
Begin
Write('a= ');
Readln(a);
Write('b= ');
Readln(b);
If a>b then NOD:=b+1 else NOD:=a+1;
Repeat
Dec(NOD);
Until ((a mod NOD)=0) and ((b mod NOD)=0);
Writeln('NOD= ',NOD);
Readln
End.
Цитата:
Сообщение от Рысена
(Сообщение 654408)
В) Дано целое число N и набор из N вещественных чисел. Вывести сумму и произведение чисел из данного набора.
|
Код:
Var
N,i:Byte;
A,P,S:Extended;
Begin
Write('N= ');
Readln(N);
S:=0;
P:=1;
For i:=1 to N do
begin
Write('Element N',i:2,': ');
Readln(A);
S:=S+A;
P:=P*A;
end;
Writeln('Sum = ',S:0:5);
Writeln('Product = ',P:0:8);
Readln;
End.
Цитата:
Сообщение от Рысена
(Сообщение 654408)
Г) Дан одномерный массив. Переставить в обратном порядке элементы массива, распространив между максимальными и минимальными элементами.
|
Простите - ни бельмеса не понял. Как это "распространив"? В каком смысле?
Цитата:
Сообщение от Рысена
(Сообщение 654408)
Д) Дана матрица размером 5х10. Вывести номер ее первой и последней строки, содержащей только положительные элементы. Если таких строк нет, то вывести 0.
|
Код:
Var
M:Array[1..5,1..10] of Integer;
i,j,first_i,last_i:Byte;
b:boolean;
Begin
Randomize;
first_i:=0;
last_i:=0;
For i:=1 to 5 do
begin
For j:=1 to 10 do
begin
M[i,j]:=-10+Random(100);
Write(M[i,j]:5);
end;
Writeln;
end;
Writeln;
Writeln;
For i:=1 to 5 do
begin
b:=true;
j:=0;
Repeat
Inc(j);
If M[i,j]<=0 then b:=false;
Until Not(b) or (j=10);
If b then
begin
if first_i=0 then first_i:=i
else last_i:=i;
end;
end;
Writeln('First line has number ',first_i);
Writeln('Last line has number ',last_i);
Readln;
End.
Цитата:
Сообщение от Рысена
(Сообщение 654408)
Е) Даны два целых числа A и B (A<B). Вывести все целые числа, расположенные между данными числами (не включая сами эти числа) в порядке их убывания, а так же количество N этих чисел.
|
Код:
Var
A,B,i:Integer;
Begin
Write('A= ');
Readln(A);
Write('B= ');
Readln(B);
For i:=B-1 downto A+1 do write(i:8);
Writeln;
Writeln;
Writeln('N = ',B-A-1);
Readln;
End.
Цитата:
Сообщение от Рысена
(Сообщение 654408)
Ж) Даны два числа. Поменять местами их значения. Даны два целых числа. Поменять местами их значения.
|
Код:
Var
a,b:Integer;
Procedure Exchange(q,p:Integer; var q1:Integer; var p1:Integer);
begin
q1:=p;
p1:=q;
end;
Begin
Write('a= ');
Readln(a);
Write('b= ');
Readln(b);
Writeln;
Exchange(a,b,a,b);
Writeln('a= ',a);
Writeln('b= ',b);
Readln
End.
Цитата:
Сообщение от Рысена
(Сообщение 654408)
З) Дано N целых чисел. Найти среди них число, у которого сумма цифр имеет максимальное значение.
|
Код:
Var
A:Array[1..100] of Word;
N,Max_S,i,I_max:Byte;
Function Sum_of_figures(p:Word):Byte;
var
d:Word;
S,j:Byte;
begin
d:=10000;
S:=0;
For j:=1 to 5 do
begin
S:=S+(p div d);
p:=p mod d;
d:=d div 10;
end;
Sum_of_figures:=S;
end;
Begin
Randomize;
Write('N= ');
Readln(N);
Writeln;
Writeln('Initial array:');
For i:=1 to N do
begin
A[i]:=Random(65535);
Write(A[i]:8);
end;
Writeln;
Writeln;
Writeln('Sums of figures:');
Max_S:=0;
For i:=1 to N do
begin
Write(Sum_of_figures(A[i]):8);
If Sum_of_figures(A[i])>Max_S then
begin
Max_S:=Sum_of_figures(A[i]);
I_max:=i;
end;
end;
Writeln;
Writeln;
Writeln('Maximal sum of figures (',Max_S,') has the element N',I_max,' equal to ',A[I_max]);
Readln;
End.
|