Форум: "Потрепаться";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
ВнизПомогите решить задачу на pascal e Найти похожие ветки
← →
oflaund © (2004-05-06 13:46) [0]В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) количество элементов массива, лежащих в диапазоне от А до В;
2) сумму элементов массива, расположенных после максимального элемента.
Упорядочить элементы массива по убыванию модулей элементов.
← →
Gero © (2004-05-06 13:52) [1]И не стыдно?
Сам бы решил и не позорился.
← →
Digitman © (2004-05-06 13:53) [2]
> oflaund
никак два балла по сабжу в кондуите светит ?
> Помогите
это как ? написать за тебя готовую программу ?
← →
pasha_golub © (2004-05-06 14:06) [3]10 баксов и нет проблем.
← →
DVM © (2004-05-06 14:10) [4]
> 1) количество элементов массива, лежащих в диапазоне от
> А до В;
program p1;
uses crt;
var
m: array[1..10] of real;
i, k:integer;
a,b: real;
begin
clrscr;
readln(a,b);
for i:=1 to 10 do readln(m[i]);
k:=0;
for i:=1 to 10 do
if (m[i]>a) and (m[i]<b) then k:=k+1;
writeln(k);
readln;
end.
← →
pasha_golub © (2004-05-06 14:20) [5]DVM © (06.05.04 14:10) [4]
Не стыдно, а? ;-)
← →
TUser © (2004-05-06 14:33) [6]
> DVM © (06.05.04 14:10) [4]
Демпинг, однако :)
← →
DVM © (2004-05-06 14:38) [7]
> pasha_golub © (06.05.04 14:20) [5]
Мне делать нечего. Скучно.
← →
Просто Вася (2004-05-06 15:13) [8]2 pasha_golub
10 баксов и нет проблем.
Продишивил что ты
← →
pasha_golub © (2004-05-06 15:16) [9]Просто Вася (06.05.04 15:13) [8]
Не для школьных задача, вполне.
← →
Просто Вася (2004-05-06 15:23) [10]У меня такие задачи были по информатике на 1-м курсе правда на С
помню я заранее достал список такого рода заданий и на экзамен пришел с соответствующей дискетой.......золотое было время :)
← →
$tranger © (2004-05-06 15:59) [11]
> 2) сумму элементов массива, расположенных после максимального
> элемента.
это как?
← →
Рамиль © (2004-05-06 16:08) [12]
> это как?begin
Max := -MaxInt;
for i := 1 to n do
begin
if A[i] >= Max then
begin
Max := A[i];
j := i;
end;
end;
if j = n then exit;
Sum := 0;
for i := j + 1 to n do
begin
Sum := Sum + A[i];
end
end;
З. Ы. Не бейте, мне тоже делать нечего:)
← →
Romkin © (2004-05-06 16:15) [13]$tranger © (06.05.04 15:59) [11] Примерно так:
function SumRightOfMax(A: array of Double): Double;
var
i: integer;
AMax: Double;
begin
Result := 0;
if length(A) = 0 then exit;
AMax := A[Low(A)];
for i := Low(A) + 1 to High(A) do
begin
Result := Result + A[i];
if AMax < A[i] then
begin
AMax := A[i];
Result := 0;
end;
end;
end;
Только у преподавателя при взгляде на эту функцию, скорее всего возникнут вопросы ;)
← →
Vlad Oshin © (2004-05-06 16:31) [14]
> Low(A)
вот всегда забываю про эту фишку, всегда вручную гоняю :(
← →
Рамиль © (2004-05-06 16:32) [15]Хм... Что то я цикл лишний впаял, однако.. Старею видимо:)
← →
Romkin (2004-05-06 16:42) [16]Рамиль © (06.05.04 16:32) [15] Твое решение больше подходит, имхо :) Потому что если возникают проблемы с сабжем, то при сдаче моего листинга я бы на месте преподавателя был бы подозлителен :)))
Вообще говоря, мне иногда приходится решать задачки в качестве гуманитарной помощи. Только я никогда не интересуюсь, как прошла сдача ;) Обожаю изгаляться. Вот например, недавно принесли крутейшую задачу:
Имеется текстовый файл, в каждой строке которого записана фамилия и через пробел - телефон. Написать на TP7 программу, которая запрашивает фамилию и выводит все строки, в которых есть эта фамилия... Что-то вроде :)
Терпеть не могу таких задачек. На что рассчитывает преподаватель, интересно?
{обвязку с риделном фамилии в Fam и ресетом файла опущаю}
while not EOF(F) do
begin
readln(F,S);
if Pos(Fam, S) > 0 then
writeln(S);
end;
Задача решена? Решена. Но почему-то мне кажется, не так, как ожидалось ;)
← →
Gero © (2004-05-06 16:55) [17]
> [16] Romkin (06.05.04 16:42)
А где значек мастера? ;)
← →
Romkin (2004-05-06 17:01) [18]Ой, млин, потерялся 8-\
← →
Gero © (2004-05-06 17:05) [19]
> Romkin (06.05.04 17:01)
Как это потерялся?
← →
pasha_golub © (2004-05-06 17:06) [20]бЫвает и по-другому. Препод дает заведомо сложное задание намереваясь проучить кого-то. А ты возми да и сделай этому кому-то.
Был у меня такой опыт, блин, если бы не инет... Ну да вообщем, страх да и только.
Или бывает, что товарищи преподы очень плохо формулируют задачи, а товарищи "заказчики" нифига прояснить не могут, потому шо болт они ложили на эти пары. И приходиться учитывать общие случаи и т.д., и т.п. Правда за эти старания и пива больше можно взять.
← →
Romkin (2004-05-06 17:09) [21]Ну как обычно значки теряются? Булавка оторвалась, вот и...
А вообще это грязные происки некоторых несознательных элементов среди наличествующего преподавательского состава форума в отве на не совсем политкорректный пост с моей стороны! Вот! :)
← →
Gero © (2004-05-06 17:17) [22]
> Romkin (06.05.04 17:09)
Тьфу... Беспредел прям какой-то...
← →
Yanis © (2004-05-06 18:02) [23]А почему это обсуждение не закрыли!? Ведь вопросы по учёбе на сайте не в почёте?
← →
SergP © (2004-05-06 19:49) [24]
> 2) сумму элементов массива, расположенных после максимального
> элемента
Однозначно будет Ноль.
← →
SergP © (2004-05-06 19:51) [25]
> Однозначно будет Ноль.
Ой блин... Не подумал что массив может быть неотсортирован....
← →
Vlad Oshin © (2004-05-07 08:40) [26]
> Упорядочить элементы массива по убыванию модулей элементов
это пузырьковый метод по abs
т.е. берешь в магазине пузырь Абсолюта и идешь к Ромкину
← →
pasha_golub © (2004-05-07 11:04) [27]Vlad Oshin © (07.05.04 08:40) [26]
LOL
← →
Romkin © (2004-05-07 11:25) [28]Vlad Oshin © (07.05.04 08:40) [26] Лучше пива, в нем пузырьков больше :)
procedure BubbleSort(var A: array of Integer);
var
isSorted: boolean;
i, k: integer;
T: Integer;
begin
if Length(A) < 2 then
exit;
k := High(A) - 1;
repeat
isSorted := True;
for i := Low(A) to k do
if A[i] > A[i+1] then
begin
T := A[i];
A[i] := A[i+1];
A[i+1] := T;
isSorted := False;
end;
dec(k);
until isSorted;
end;
Вроде не ошибся... Кстати, тоже не тривиально, по крайней мере, требуется доказательство правильности ;)
← →
Romkin © (2004-05-07 11:32) [29]А, по абсолюту! Мдя... Еще и по убыванию... Пиво не катит :)))
if A[i] > A[i+1] then ...
заменить на
if abs(A[i]) < abs(A[i+1]) then ...
← →
Рамиль © (2004-05-07 11:39) [30];
> Romkin © (07.05.04 11:25) [28]
А есть немного покороче:)procedure Sort(var A: array of Integer);
var
I, J, T: Integer;
begin
for I := High(A) downto Low(A) do
for J := Low(A) to High(A) - 1 do
if A[J] > A[J + 1] then
begin
T := A[J];
A[J] := A[J + 1];
A[J + 1] := T;
end;
end
(c) Borland ;)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.05.30;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.038 c