Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.038 c
1-1099377678
Gawk
2004-11-02 09:41
2004.11.14
Выполнение действия через определённые промежутки времени...


8-1091640838
miek
2004-08-04 21:33
2004.11.14
GLScene: вопросы


14-1099058767
Knight
2004-10-29 18:06
2004.11.14
МиниЛинух... только роутер или можно почту и web прикрутить?


1-1099314635
Некто
2004-11-01 16:10
2004.11.14
Абсолютные координаты объекта


14-1098424495
Polevi
2004-10-22 09:54
2004.11.14
зенит чемпион





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский