Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.30;
Скачать: CL | DM;

Вниз

Помогите решить задачу на 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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.042 c
11-1073581090
Rasperepodviipodvert
2004-01-08 19:58
2004.05.30
Kol


4-1081955470
AndersoNRules
2004-04-14 19:11
2004.05.30
Kak pravilino UBIVATI TThread i ?


3-1083691075
Крутыш
2004-05-04 21:17
2004.05.30
Всем кто использует Sybase.


14-1084071283
Думкин
2004-05-09 06:54
2004.05.30
С днем рождения! 9 мая


1-1084857230
SiJack
2004-05-18 09:13
2004.05.30
Как определить что MessageBox уже показано и не показывать