( Вход | Регистрация | Поиск )

Помощь с pascal`ем, решение задач
Дата обновления: 17.12.2010 - 23:18, перейти к новому сообщению

·main
Группа: Пользователи

Сообщений: 146
Люди мне надо решить восемь задач в паскале, если есть кто в нем рулит помогите, а то я сам не успею.


Ответов(20 - 29)

·FOX
Группа: Пользователи

Сообщений: 17
Помогите решить 3 задачи. Времени нету, а с паскалем Давно не работал sad.gif
1(Матрицы).Дана матрица размера 5х10. Вывести номер ее последней строки, содержащей только положительные элементы. Если таких строк нет, то вывести 0.
2(Строки).Дана строка. Преобразовать все строчные латинские буквы в прописные.
3(Множества).Дан текст из строчных латинских букв, за которыми следует точка. Напечатать первые вхождения букв в текст, сохраняя их исходный взаимный порядок.
Заранее спасибо.


·AquaTour
Группа: Пользователи

Сообщений: 417
C Паскалем надо работать smile.gif

1)
const
maxY = 5;
maxX = 3;
var
mas : array[1..maxY, 1..maxX] of Integer;
i, j : Integer;
f : Boolean;
begin
for i := 1 to maxY do
begin
for j := 1 to maxX do
Read(mas[i, j]);
ReadLn;
end;
i := maxY;
f := true;
while (i > 0) and (f) do
begin
f := false;
for j := 1 to maxX do
if mas[i, j] < 0 then
f := true;
i := i - 1;
end;
if not f then
i := i + 1;
WriteLn(i);
ReadLn;
end.

2)
var
s : string;
i : integer;
begin
ReadLn(s);
for i := 1 to Length(s) do
if (Ord(s[i]) >= 97 ) and (Ord(s[i]) <= 122) then
s[i] := Char(Byte(s[i]) - 32); //приведение типов
WriteLn(s);
ReadLn;
end.

3)
var
d : set of 'a'..'z';
s : String;
i : Integer;
begin
ReadLn(s);
for i := 1 to Length(s) do
if (Ord(s[i]) >= 97 ) and (Ord(s[i]) <= 122) and not(s[i] in d) then
begin
Write(s[i]);
Include(d, s[i]);
end;
ReadLn;
end.

Протестируй получше, а то я ночью писал мог чего и перепутать. ph34r.gif


Slow motion

вот задачки:
1 Даны натуральное число n, действительные числа a, b, x1, y1, ..., xn, yn. Пара a, b - координаты
школы микрорайона, а пары xi, yi (i = 1, ..., n) - соответственно координаты домов этого микрорайона.
Найти расстояния от домов до школы и среднее арифметическое этих расстояний.

2 Дано натуральное число n. Получить сумму тех чисел вида , которые являются утроенными нечетными.

3 Дана строка символов S1,...,Sn. Выяснить, имеются ли в последовательности S1,...,Sn такие члены последовательности
Si , Si+1 , что Si - это запятая, а Si+1 - тире.

4 Даны действительные числа A1,..., A28, B1,..., B28. Члены последовательности C1,..., C29 связаны с членами данных последовательностей соотношениями C29=0, C29-i=A29-i/B29-i -C29-i+1 (i=1, ..., 28). Получить: C1,..., C29.

5 Натуральное число называется совершенным, если оно равно сумме всех своих делителей, за исключением себя самого . Число 6 - совершенное, так как 6=1+2+3. Число 8 - не совершенное, т.к. как 8 1+2+4. Дано натуральное число n. Получить все совершенные числа, меньше n.

6 Дано натуральное число n. Выяснить, имеются ли среди чисел n, n+1, ..., 2n близнецы, т.е. простые числа, разность между которыми равна 2. (Определить процедуру, позволяющую распознавать простые числа).

7 Сведения об ученике состоят из его имени и фамилии и названии класса (года обучения и буквы), в котором он учится.
Дан файл f, содержащий сведения об учениках школы. Выяснить, имеются ли однофамильцы в каких-либо параллельных классах.



·AquaTour
Группа: Пользователи

Сообщений: 417
1)
const
max = 5;
var
i : Integer; a, b, p, s : real;
x : array[1..max] of real;
y : array[1..max] of real;
function f(j : integer) : real;//вычисление расстояния между 2-мя точками
begin
f := Sqrt(Sqr(a - x[j]) + Sqr(b - y[j]));
end;
begin
ReadLn(a, cool.gif;
for i := 1 to max do
ReadLn(x[i], y[i]);
s := 0;
for i := 1 to max do
begin
p := f(i);
WriteLn(p);
s := s + p;
end;
WriteLn('****');
WriteLn(s / max);
ReadLn;
end.

4)
const
max = 28;
var
i : integer; a, b : array[1..max] of real;
c : array[1..max + 1] of real;
begin
for i := 1 to max do
Read(a[i]);
for i := 1 to max do
Read(b[i]);
c[max + 1] := 0;
for i := max downto 1 do
c[i] := a[i] / b[i] + c[i + 1];
for i := 1 to max + 1 do
Write(c[i] : 2 : 1, ' ');
ReadLn;
end.

5)
var
n, i : integer;
function F(inp : integer) : boolean;
var
tmp, j : integer;
begin
tmp := 0;
for j := 1 to (inp div 2) do
if inp mod j = 0 then
tmp := tmp + j;
if tmp = inp then
F := true
else
F := false;
end;
begin
ReadLn(n);
for i := 1 to n do
if F(i) then
Writeln(i);
ReadLn;
end.


·AquaTour
Группа: Пользователи

Сообщений: 417
6)
var
i, n : Integer;
function F(v : integer) : boolean;
var
r, d : integer;
begin
d := 2;
repeat
r := v mod d;
if r <> 0 then
Inc(d);
until r = 0;
if d = v then
F := true
else
F := false;
end;

begin
ReadLn(n);
for i := n to n * 2 - 2 do
if F(i) then
if F(i + 2) then
WriteLn(i, ' - ', i + 2);
ReadLn;
end.

7)
type
rec = record
sn : string[30];{фамилия}
n : string[30];{имя}
y : string[2];{год обучения}
b : string[1];{буква класса}
end; { rec }
var
m : array[1..100] of rec;
i, n, j : integer;
f : file of rec;
begin
n := 0;
Assign(f, 'input.txt');
Reset(f);
while not EOF(f) do
begin
Read(f, m[i]);
n := n + 1;
end;
Close(f);
for i := 1 to n do
for j := 1 to n do
if (m[i].sn = m[j].sn) {проверяем одинаковые ли фамилии}
and (m[i].y = m[j].B ){проверяем год обучения}
and (i <> j) then {и проверяем что это не один и тот же ученик}
WriteLn(m[i].sn, ' ', m[i].n, ' ', m[i].y, ' ', m[i].B );
ReadLn;
end.

2)
var
i, n, z : Integer;
begin
ReadLn(n);
z := 0;
for i := 1 to n do
if Odd(i * 3) then
z := z + i;
Write(z);
ReadLn;
end.


Slow motion

В 3 обчная строка


·AquaTour
Группа: Пользователи

Сообщений: 417
3)
var
s, s1 : String;
begin
ReadLn(s);
s1 := ',-';
if Pos(s1, s) <> 0 then
Write('Присутствует')
else
Write('Подстроки не существует');
ReadLn;
end.


·Alex Ander
Группа: Наши Люди

Сообщений: 565
1. Змей Горыныч и Добрыня Никитич
У n-голового Змея Горыныча заболело k голов. Змей Горыныч обратился за помощью к Добрыне Никитичу. Добрыня Никитич одним ударом меча срубает подряд не менее двух голов Змея Горыныча. При этом на месте срубленной больной головы вырастает здоровая. Однако вместо срубленной здоровой у Змея Горыныча вырастает больная. Какое минимальное количество ударов должен нанести Добрыня Никитич, чтобы вылечить Змея Горыныча?
Формат входного файла
В первой строке содержатся числа n и k, разделенные пробелом. Вторая строка состоит из k нулей и n-k единиц. Нуль означает больную голову, а единица – здоровую.
Формат выходного файла
Содержит минимальное число ударов которыми Добрыня Никитич вылечил Змея Горыныча.


2. Шахматный турнир
Несколько лет назад был проведен шахматный турнир, замечательный тем, что в нем ни в одной партии не была зафиксирована ничья. Журналисты решили напечатать таблицу результатов этого уникального турнира. Так как документальных свидетельств этого турнира не оказалось, было решено сделать опрос участников турнира. В результате опроса выяснилось, что каждый участник смог вспомнить только количество очков которые он набрал в этом турнире. Сколько вариантов таблицы результатов могут составит журналисты по результатам этого опроса? (Таблица результатов – эта таблица по которой можно выяснить как сыграли p-й и q-й игроки. Если p-й выиграл, то в p-й строке в q-м столбце стоит 1, в противном случае – 0).
Формат входного файла.
В первой строке находится число n. (4<=n<=14). Где n – количество участников турнира.
В каждой из n следующих строк вначале находится фамилия участника турнира, а затем после пробела – количество очков которые набрал этот шахматист.
Формат выходного файла.
Выходной файл содержит количество вариантов таблицы результатов.



3 Театр
Марья Ивановна с Марьей Михайловной привели школьников в театр. Чтобы не было никаких обид, Марья Ивановна построила всех школьников по алфавиту и рассадила их: сначала в первый ряд слева направо, затем второй ряд слева направо и т.д., заполнив весь зал из n рядов по m кресел. Тут пришла Марья Михайловна и сказала, что ребята сели неправильно – надо пересесть. Она предложила сначала заполнить все первые места от первого ряда к последнему, затем вторые места и т.д.
Определите, сколько школьников после такой пересадки останется на своем месте. Например, если n=3 и m=3, то в первом случае дети сядут так:
1 2 3
4 5 6
7 8 9
а во втором – так:
1 4 7
2 5 8
3 6 9
Таким образом, три школьника: 1, 5 и 9 останутся на своих местах.
Формат входного файла
Входной файл содержит два целых числа n и m (1<=n,m<=109 )
Формат выходного файла
Выведите количество школьников, которые останутся на своих местах

4 Три отрезка
Петя и Ваня живут в домах, которые расположены на пересекающихся улицах. Однажды Петя пошел в гости Ване. Сначала он шел по своей улице к перекрестку, но, не дойдя до перекрестка пошел напрямик к улице Вани. Вышел на улицу Вани, и оказалось, что вышел между перекрестком и домом Вани. Дойдя до дома Вани, Петя заметил, что все три отрезка его пути равны между собой. Подскажите Пете какой путь он прошел (длину пути).
Формат входного файла
Входной файл содержит 3 пары чисел – координаты домов Пети, Вани и координаты перекрестка
Формат выходного файла
Выведите длину пути Пети c точностью до 4 знаков после запятой






·scorpio
Группа: СуперМодераторы

Сообщений: 8.029
Напиши алгоритмы, а код напишем wink.gif


·Alex Ander
Группа: Наши Люди

Сообщений: 565
Знал бы алгоритмы - код бы я сам написал.