Текущий архив: 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 то там помоему точно должен быть.
Если таки не заработает то нужно переменную заводить
← →
Qwest © (2004-10-22 22:01) [41]
> then Inc(Summa, DataArray[I])
здесь: then Inc(Amount, DataArray[I])
← →
esu (2004-10-22 22:01) [42]
> Qwest © (22.10.04 21:58) [39]
Измени везде в коде Summa на Result, скажи что получилось
← →
Qwest © (2004-10-22 22:05) [43]
> Измени везде в коде Summa на Result, скажи что получилось
Сумма отрицательных элементов постоянно равняется 3200 , Зато программа компилируется.
← →
begin...end © (2004-10-22 22:06) [44]
> [40] esu (22.10.04 22:00)
> Ну уж result то там помоему точно должен быть.
Не-а.
> [39] Qwest © (22.10.04 21:58)
Ну ладно, попробуй тогда так:program massiv;
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]);
Amount := Summa
end;
var
I: Integer;
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.
← →
Sanek_Metaller © (2004-10-22 22:07) [45]>Т.е. ты перерыл книги, мануалы, хелпы и - ноль.
В данном случае открыть лекцию=)
>Вот так будет выглядеть алгоритм программы?
Чтобы посмотреть,как будет выглядеть алгоритм проги,нужно скачать Аутошэму=)
← →
esu (2004-10-22 22:08) [46]
> > Ну уж result то там помоему точно должен быть.
>
> Не-а.
А говорят что программа компилируется :)
> Qwest © (22.10.04 22:05) [43]
Исходник покажи, виг его знает что там уже наменалось :)
← →
Qwest © (2004-10-22 22:18) [47]
> Ну ладно, попробуй тогда так:
Всё...Программа работает!
Вы не могли бы пояснить про Low(DataArray) и High(DataArray)?
← →
begin...end © (2004-10-22 22:24) [48]
> [38] wnew © (22.10.04 21:57)
> можно передавать только открытый массив, то есть - создать
> свой тип и объявит переменную этого типа
Это как раз-таки уже не открытый массив будет...
> [47] Qwest © (22.10.04 22:18)
Low - функция, возвращающая значение нижней границы индексов массива.
High - то же, для верхней границы.
> Всё...Программа работает!
Удачи!
P.S. Всё, пошёл спать.
← →
Qwest © (2004-10-22 22:28) [49]Большое спасибо вам begin...end за оказанную помощь в решени данной задчи.
← →
wnew © (2004-10-22 22:35) [50]begin...end © (22.10.04 22:24) [48]
> Это как раз-таки уже не открытый массив будет...
Да Вы правы, но в его случае, думаю, лучше было бы создать свой тип.
← →
Vudu (2004-10-22 23:59) [51]А можно вопрос, на кого учимся? (это Qwest-у)
← →
TUser © (2004-10-23 12:55) [52]
> А можно вопрос, на кого учимся? (это Qwest-у)
На копипастера, наверное.
← →
Sha © (2004-10-23 15:02) [53]Просьба к отвечающим:
своими ответами не способствовать снижению интеллектуального потенциала нации :)
А то так, глядишь, лет через 20 уже и ответить никто не сможет :(
← →
TUser © (2004-10-23 15:09) [54]Лет через 20 появятся вопросы - а как мне запостить задачи в форум :)
← →
Johnmen © (2004-10-25 10:10) [55]А что ещё сильно печалит, так это попытки некоторых индивидуумов "помочь". При этом вводя в заблуждение вопрошающих своими неверными ответами...
Страницы: 1 2 вся ветка
Текущий архив: 2004.11.14;
Скачать: CL | DM;
Память: 0.61 MB
Время: 0.046 c