Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.043 c
1-1084695889
Максим
2004-05-16 12:24
2004.05.30
Курсор


1-1084633198
Ivolg
2004-05-15 18:59
2004.05.30
Memo


14-1084264874
slaga
2004-05-11 12:41
2004.05.30
] Я вот хочу начать изучать COM технологию, хотел спросить может


14-1083933763
Nick-From
2004-05-07 16:42
2004.05.30
Застрял на запросе


14-1084109673
Nick Denry
2004-05-09 17:34
2004.05.30
Куда дели ссылку на Мастера Улыбаются?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский