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

Вниз

Задачи.   Найти похожие ветки 

 
Qwest ©   (2004-10-22 16:26) [0]

Уважаемые мастера помогите пожалуйста решить задачи по Паскалю:

1) Написать программу, которая находит в массиве значение наибольшего из отрицательных.

   program nchisla;
   var a:array [1..5] of integer; i,otric: integer;
   begin
   for i:=1 to 5 do begin
   writeln("Задайте ",i,"-ое число -");
   readln(a[i]);
   end;
   writeln("Был задан массив:");
   for i:=1 to 5 do write(a[i]," ");
   writeln;
   otric:=0;
   write("Отрицательные числа: ");
   for i:=1 to 5 do if  a[i]<0 then
   write(a[i]);
   readln;
   end.

Как теперь найти наибольшее отрицательное число?

2) Написать программу, используя функцию для вычисления суммы отрицательных элементов в массиве, содержащем целые числа.

3) Написать программу, используя функцию, на вход которой подается массив, и она возвращает true, если в массиве есть число 0 и false в противном случае.


 
pasha_golub ©   (2004-10-22 16:28) [1]

Сколько денег?


 
Anatoly Podgoretsky ©   (2004-10-22 16:33) [2]

А в местном учебном заведении не интересовался?


 
pasha_golub ©   (2004-10-22 16:35) [3]

Anatoly Podgoretsky ©   (22.10.04 16:33) [2]
А зачем? Форум неужели просто так выдумали?


 
Anatoly Podgoretsky ©   (2004-10-22 16:39) [4]

pasha_golub ©   (22.10.04 16:35) [3]
Просто раскатал губу, такие вещи делаются на коммерческой основе, наивный чукотский юноша.


 
Алхимик ©   (2004-10-22 16:43) [5]

Не юли. Старший брат на чеку.
Сам не напишешь - зачёт мне до весны сдавать будешь!
p.s. Никитка уже спёкся.


 
Qwest ©   (2004-10-22 16:43) [6]

Ммм...да. Ну извините что побеспокоил.


 
TUser ©   (2004-10-22 16:52) [7]


> 3) Написать программу, используя функцию, на вход которой
> подается массив, и она возвращает true, если в массиве есть
> число 0 и false в противном случае.

Вот это мне понравилось - используя функцию. А что этот софт делать-то должен.

Вобщем так - если не требуется писать help и документировать код - 1L пива за задачу. Проси по мылу.


 
Алхимик ©   (2004-10-22 16:53) [8]


> 1L пива за задачу. Проси по мылу

А пиво по факсу? :)


 
wal ©   (2004-10-22 16:55) [9]

А вроде первый, кото извинился, до этого не было.
Прецедент, однако :)

С уважением.


 
begin...end ©   (2004-10-22 16:55) [10]

1)
var
 IndexMax: Byte;

...

IndexMax := 0;
for I := 1 to 5 do
begin
 if IndexMax = 0 then
 begin
   if a[I] < 0 then IndexMax := I;
 end
 else
   if (a[I] < 0) and (a[IndexMax] < a[I]) then
     IndexMax := I;
end;
if IndexMax <> 0 then
 WriteLn("Наибольшее отрицательное число: ", a[IndexMax]);


2)
function Amount(IntArray: array of Integer): Integer;
var
 I: Integer;
begin
 Summa := 0;
 for I := Low(IntArray) to High(IntArray) do
   if IntArray[I] < 0 then Inc(Summa, IntArray[I])
end


3)
function ScanForZero(IntArray: array of Integer): Boolean;
var
 I: Integer;
 Find: Boolean;
begin
 Find := False;
 I := Low(IntArray);
 while (I <= High(IntArray)) and not Find then
 begin
   Find := IntArray[I] = 0;
   Inc(I)
 end;
 FindZero := Find
end


P.S. Люблю Балтику 7.


 
wal ©   (2004-10-22 16:58) [11]

Login: Qwest
E-mail: qeq@rer.ru
Реальное имя: Asdd
Пол: Мужской
Образование: высшее
Увлечения / хобби

Интересное о себе
---------
Видимо на работе такое задание дали :)


 
begin...end ©   (2004-10-22 16:58) [12]

К [10]: Summa заменить на Amount; FindZero заменить на ScanForZero


 
Qwest ©   (2004-10-22 17:05) [13]

begin...end - Спасибо за помощь.


 
Johnmen ©   (2004-10-22 17:15) [14]

Вообще то begin...end © вовсе не помог, а просто за тебя сделал твою работу. И в данном случае это есть поддержание высокого уровня халявщины, лени и бездумности в обществе и низкого уровня грамотности...
Как всё печально...:(((


 
oldman ©   (2004-10-22 17:18) [15]

М-дя...
Особливо "2"
Господи, люди, сдавая зачеты не могут написать прогу "a+b"
грустно...


 
TUser ©   (2004-10-22 17:50) [16]

Да ладно вам - халявщики всегда были, есть и вряд ли когда-то переведутся.


 
Анонимщик ©   (2004-10-22 18:00) [17]

Какие же вы жадные (но не все).


 
SergP.   (2004-10-22 18:25) [18]


> Qwest ©   (22.10.04 16:26)  
> Уважаемые мастера помогите пожалуйста решить задачи по Паскалю:
>


Задачки простейшие... Но как-то нет желания делать за кого-то его работу (вернее задания связанные с учебой).
Когда человек что-то не знает и спрашивает - это совсем другое дело. Но когда просит что-то сделать за него - мне впадло становится это делать....


 
Qwest ©   (2004-10-22 19:19) [19]


> Когда человек что-то не знает и спрашивает - это совсем
> другое дело. Но когда просит что-то сделать за него - мне
> впадло становится это делать....

Я спрашиваю, потому что я только начинаю писать программы в Паскале и многое еще незнаю. Но делать за себя я не прошу!!!


 
esu   (2004-10-22 19:35) [20]

Ну если Qwest сможет заставить работать написанные выше примеры решения то уже не все так плохо, а если скажем что не работает то уже совсем плохо.


 
raidan ©   (2004-10-22 19:55) [21]

Qwest
Небольшое замечание на будущее - проси помощи только тогда, когда ты не можешь решить свою задачу ну просто никак.
Т.е. ты перерыл книги, мануалы, хелпы и - ноль.
Иначе - как программист ты будешь представлять из себя ноль.
Кодер - да. Но кодер - это негр. Хотя если тебе хочется быть негром - пожалуйста.


 
raidan ©   (2004-10-22 19:57) [22]

Ни коим образом не хочу оскорбить чернокожих граждан...


 
begin...end ©   (2004-10-22 19:59) [23]


> [20] esu   (22.10.04 19:35)


> заставить работать написанные выше примеры решения

Так они вроде этта... рабочие...


 
Qwest ©   (2004-10-22 20:30) [24]


> Так они вроде этта... рабочие...

Не могли бы вы написать использование этих функции (2,3) в программе?


 
begin...end ©   (2004-10-22 20:41) [25]


> [24] Qwest ©   (22.10.04 20:30)

var
 DataArray: array [1..10] of Integer;

begin
 WriteLn("Сумма отрицательных элементов: ", Amount(DataArray));
 Write("В массиве нулевые элементы ")
 if ScanForZero(DataArray) then
   WriteLn("присутствуют")
 else
   WriteLn("отсутствуют");
end.


 
esu   (2004-10-22 20:52) [26]


> Так они вроде этта... рабочие...

Да я не спорю, просто предвидел [24] :)

Ну ничего, еще есть 2ой... Там совсем сложно, придется еще переменную завести :)


 
Qwest ©   (2004-10-22 21:14) [27]

Вот так будет выглядеть алгоритм программы?

program massiv;
var I: Integer;
function Amount(DataArray: array of Integer): Integer;
  var
I,summa: Integer;
begin
  Summa := 0;
  for I := Low(DataArray) to High(DataArray) do
  if DataArray[I] < 0 then Inc(Summa, DataArray[I])
end;
 var DataArray: array [1..5] of Integer;
begin
   for i:=1 to 5 do begin
   writeln("Введите ",i," элемент массива: ");
    readln(dataArray[i]);
end;
    WriteLn("Сумма отрицательных элементов: ",AmountDataArray));
    readln;
end.


 
begin...end ©   (2004-10-22 21:21) [28]


> [27] Qwest ©   (22.10.04 21:14)


> Вот так будет выглядеть алгоритм программы?

Алгоритм программы обычно изображается не в виде кода, а в виде схем или словесного описания.
Что же касается кода - нет, не так. Обрати внимание на пост [12].


 
Qwest ©   (2004-10-22 21:34) [29]

program massiv;
var I: Integer;
function Amount(DataArray: array of Integer): Integer;
  var
I: Integer;
begin
  Amount := 0;
  for I := Low(DataArray) to High(DataArray) do
  if DataArray[I] < 0 then Inc(Amount, DataArray[I])
end;
 var DataArray: array [1..5] of Integer;
begin
   for i:=1 to 5 do begin
   writeln("Введите ",i," элемент массива: ");
    readln(dataArray[i]);
end;
    WriteLn("Сумма отрицательных элементов: ", Amount(DataArray));
    readln;
end.


????


 
begin...end ©   (2004-10-22 21:42) [30]


> [29] Qwest ©   (22.10.04 21:34)

Да. А что, не работает?

P.S. Некрасиво переменные в разных местах объявлять (я про переменные I и DataArray основной программы).


 
Qwest ©   (2004-10-22 21:43) [31]

Нет не работает...

> P.S. Некрасиво переменные в разных местах объявлять (я про
> переменные I и DataArray основной программы).

Т.е?


 
Anatoly Podgoretsky ©   (2004-10-22 21:45) [32]

esu   (22.10.04 19:35) [20]
Ты как в воду смотрел.


 
begin...end ©   (2004-10-22 21:47) [33]


> [31] Qwest ©   (22.10.04 21:43)


> Нет не работает...

Текст ошибки, версия Паскаля - ?

> Т.е?

var
 DataArray: array [1..5] of Integer;
 I: Integer;


 
begin...end ©   (2004-10-22 21:50) [34]


> [32] Anatoly Podgoretsky ©   (22.10.04 21:45)

Анатолий, вопрос не по теме: сегодня заходил на Ваш сайт, там есть новая фотография, справа... это... - Вы? ;-)


 
wnew ©   (2004-10-22 21:53) [35]

begin...end ©   (22.10.04 21:47) [33]
type TDataArray = array[1..5] of integer;

var
 DataArray: TDataArray;
 i: integer;
begin
и т.д.


 
esu   (2004-10-22 21:54) [36]

Не стоит использовать имя функции для присвоения возвращаемого значения. Нужно использовать result, с ним можно работать как с обычной переменной.
Думаю после этой поправки все разаботает.


 
begin...end ©   (2004-10-22 21:56) [37]


> [35] wnew ©   (22.10.04 21:53)

Ну в 7-й версии BP открытые массивы уже были...

> [36] esu   (22.10.04 21:54)


> Нужно использовать result

> Думаю после этой поправки все разаботает.

После этой поправки не заработает, это же не Delphi.


 
wnew ©   (2004-10-22 21:57) [38]

esu   (22.10.04 21:54) [36]
В данном случае без разницы.
Ошибка в передаче параметра функции: можно передавать только открытый массив, то есть - создать свой тип и объявит переменную этого типа, а потом передавать её в качестве параметра.


 
Qwest ©   (2004-10-22 21:58) [39]

Пишет, что ошибка здесь:
then Inc(Summa, DataArray[I])

Текст ошибки: Invalid variable reference.


 
esu   (2004-10-22 22:00) [40]

wnew ©   (22.10.04 21:57) [38]
Да, тут тоже не Delphi :) Когда я паскаль использовал открытых небыло, может быть в 7ом и появились ?


> begin...end ©   (22.10.04 21:56) [37]

Ну уж result то там помоему точно должен быть.
Если таки не заработает то нужно переменную заводить



Страницы: 1 2 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.029 c
1-1098850367
Franzy
2004-10-27 08:12
2004.11.14
"Теологический" вопрос о динамических массивах


1-1098887305
progress
2004-10-27 18:28
2004.11.14
Panel1.Handle - обработка изображения


14-1099037093
syte_ser78
2004-10-29 12:04
2004.11.14
К. Кастанеда


1-1099211684
Arnold
2004-10-31 11:34
2004.11.14
Как ограничить ввод в TEdit.


1-1099306454
COOLer
2004-11-01 13:54
2004.11.14
Tbits to Byte