Консультация № 108645
09.11.2007, 06:42
0.00 руб.
0 1 1
Уважаемые эксперты! Помогите пожалуйста с решением нескольких задачек... В принципе, они несложные, просто мне очень не хватает времени их решить... Я приехал в город из сельской местности, поступил в институт, но Паскаля у нас в школе не было! Я смог решать задачи более низкого уровня(ветвление, циклы и др.) но эти - не могу додуматься... Может вы сможете?

1. Дан одномерный целочисленный массив B(n) и натуральное число n. Для каждого из элементов массива B выяснить, сколько раз оно входит в эту последовательность. Результат представить в виде:
**a1 встречается k1 раз** При печати не должно быть повторяющихся строк.

2. Дана последовательность из n вещественных чисел. Упорядочить последовательность по убыванию методом пузырька: последовательно сравниваются пары соседних элементов xk и xk+1 (k=1,2,...,n-1) и, если xk< xk+1, то они переставляются; тем самым наименьший элемент окажется на своем месте в конце массива; затем этот метод применяется ко всем элементам, кроме последнего, и т. д.

3. Дано натуральное число n. Вычислить:
Z=ln(1+ln(2+...+ln((n-1)!+ln(n)!))).

4. Дана матрица D(n,m).
Найти максим. элемент заштрихованной области (см. приложение):

Приложение:
_____________|-- * ||-----* ||------- * ||----------- * ||---------------* ||___________*|

Обсуждение

Неизвестный
09.11.2007, 10:01
общий
это ответ
Здравствуйте, Mamontenok!
1.
VAR a: array of integer;
isit: boolean;
count: integer;
i: integer;
j : integer;
begin
// Помещаем в массив а разные элементы
for i := 0 to n - 1 do
begin
isit := false;
for j := 0 to Length(a)-1 do
begin
if b[i] = a[j] then isit := true;
end
if not isit then
begin
SetLength(a, Length(a) + 1);
a[Length(a) - 1] := b[j];
end;
end
// Если хотите, сортируйте, QuickS(a, 0, Length(a) - 1)
//Выводим элементы
for j := 0 to Length(a) - 1 do
begin
count := 0;
for i := 0 to n - 1 do
if b[i] = a[j] then inc(count);
Writeln(a[j], ‘ встречается ‘, count, ‘ раз‘); //Вывод не помню, кажется так :)
end;
ReadLn;
end;

2. Возьмите какой-нибудь учебник по Паскалю, во всех учебниках описан данный метода, иногда даже с кодом, или
http://www.excode.ru/art4490p1.html (за качество не ручаюсь, но на правду похоже)

3.
function fact(i: integer): integer;
var j: integer;
begin
result := 1;
for j := 2 to i do Result := Result * j;
end;
z:= 0;
for i := n downto 1 do
begin
z := ln(fact(i) + z);
end;
И рекомендация, не проверяйте на больших n, факториал очень быстро растет

4.
var i, j, max: integer;
begin
max := a[0,0];
for i := 0 to n - 1 do
for j := 0 to m - 1 do
if i < j then
if max < a[i, j] then max := a[i;,j]

Все
Если у вас из другой области максимум находится, то мы по разному выводим массивы, и уловие i < j замените на условие i > j
Удачи.
Форма ответа