Общий Разговоры на различные темы. |
22.02.2010, 20:32
|
#1
|
Россошь_sity
Регистрация: 12.01.2008
Сообщений: 1,918
|
можете написать прогу мне чисто код
вычислить сумму четных элементов одномерного массива до первого встречного нулевого элемента
ПыСы паскаль
__________________
Идея живет лишь мгновение но затроньте чувства и она станет вечной
|
|
|
22.02.2010, 20:34
|
#2
|
Newbie
Регистрация: 06.02.2010
Сообщений: 31
|
Сорь, онли С++
|
|
|
22.02.2010, 20:41
|
#3
|
Commoner
Регистрация: 20.01.2010
Сообщений: 58
|
джава максимум, паскаль это что на 1 курсе?
|
|
|
22.02.2010, 20:45
|
#4
|
R.I.P.
Регистрация: 12.08.2008
Сообщений: 1,490
|
uses crt;
var a:array[1..100] of real;
i,j,n,ti1,ti2:integer;
sum,min,max,x,p:real;
begin
ClrScr;
Randomize;
Write('n=');
Readln(n);
for i:=1 to n do
begin
a[i]:=-10+random(20);
Write(a[i]:0:1,' ');
end;
sum:=0;
for i:=1 to n do
if a[i]>0 then
sum:=sum+a[i];
min:=a[1];
max:=1;
for i:=1 to n do
if abs(a[i])<min then
begin
min:=abs(a[i]);
ti1:=i;
end;
for i:=1 to n do
if abs(a[i])>max then
begin
max:=abs(a[i]);
ti2:=i;
end;
Writeln;
Writeln('Min=',min:0:1,' [',ti1,']');
Writeln('Max=',max:0:1,' [',ti2,']');
p:=1;
for i:=ti1+1 to ti2-1 do
p:=p*a[i];
Writeln;
Writeln('Sum=',sum:0:1);
Writeln('P=',p:0:1);
for i:=1 to n do
for j:=i to n do
if a[i]<a[j] then
begin
x:=a[i];
a[i]:=a[j];
a[j]:=x;
end;
for i:=1 to n do
Write(a[i]:0:1,' ');
Readln;
end.
Вроде без ошибок..
|
|
|
22.02.2010, 21:05
|
#5
|
Россошь_sity
Регистрация: 12.01.2008
Сообщений: 1,918
|
ChixHunter чет длинная у меня намного короче получилась вот только паскаль зависает при включении
а без штук
вот моя на скрине не добавлен writуln а так все также и не рабoтает while убераешь работает токо все складывает а не до первого 0
http://s56.radikal.ru/i153/1002/29/f01173db2a2b.jpg
у меня первая (ни та что на скрине) с заранее известным размером массива и случ числами от 100 до 300 работает а это блин нет
__________________
Идея живет лишь мгновение но затроньте чувства и она станет вечной
|
|
|
22.02.2010, 21:13
|
#6
|
Hero
Регистрация: 10.12.2006
Сообщений: 1,260
|
Если чисто алгоритм, то все просто:
...
Summ := 0;
for i := 0 to MAX do begin
__if SomeArray[i] = 0 then Break;
__if Function(SomeArray[i]) then Summ := Summ + SomeArray[i];
end;
...
MAX - длина массива
SomeArray - сам массив
Function - булевая функция, которая возвращает true в случае если число четное (просто забыл название этой функции)
Summ - сумма
__________________
LifeStream
Lin Kuei
|
|
|
22.02.2010, 21:18
|
#7
|
Россошь_sity
Регистрация: 12.01.2008
Сообщений: 1,918
|
n mod 2=0 это проверяет четность
__________________
Идея живет лишь мгновение но затроньте чувства и она станет вечной
|
|
|
22.02.2010, 21:21
|
#8
|
Hero
Регистрация: 10.12.2006
Сообщений: 1,260
|
n mod 2=0 это проверяет четность
[/b]
|
Ну тогда
__if (SomeArray[i] mod 2 = 0) then Summ := Summ + SomeArray[i];
А на чистом паскале никогда не писал, поэтому полностью программу составить не смогу :(
__________________
LifeStream
Lin Kuei
|
|
|
22.02.2010, 21:22
|
#9
|
Россошь_sity
Регистрация: 12.01.2008
Сообщений: 1,918
|
Microsoft так всегда 0 если if SomeArray[i] = 0 then Break; рандом стоит от -10 до 10 но почему всегда сразу в 0 хз
__________________
Идея живет лишь мгновение но затроньте чувства и она станет вечной
|
|
|
22.02.2010, 21:26
|
#10
|
Hero
Регистрация: 10.12.2006
Сообщений: 1,260
|
Microsoft так всегда 0 если if SomeArray[i] = 0 then Break; рандом стоит от -10 до 10 но почу всегда сразу в 0 хз
[/b]
|
Попробуй потестить без рандома. Например, для теста заполни весь массив единицами.
__________________
LifeStream
Lin Kuei
|
|
|
22.02.2010, 21:27
|
#11
|
Россошь_sity
Регистрация: 12.01.2008
Сообщений: 1,918
|
щас попробую с рандомом от 1 до 20
пипець с рандомом от 1 до 20 тоже в ноль где-то 30% идет
__________________
Идея живет лишь мгновение но затроньте чувства и она станет вечной
|
|
|
22.02.2010, 21:30
|
#12
|
Hero
Регистрация: 10.12.2006
Сообщений: 1,260
|
Убери ";" после Break.
__________________
LifeStream
Lin Kuei
|
|
|
22.02.2010, 21:32
|
#13
|
Россошь_sity
Регистрация: 12.01.2008
Сообщений: 1,918
|
а в принципе можно ли рандом поставить a[i]:=10-Random(20); можно вместо + поставить - тогда 30% нормальных ответов?
Убери ";" после Break.
[/b]
|
ругается тогда :D и не работает
короче работает с рандомом и от -10+Random(20) попробую масивчик побольше забульбенить
__________________
Идея живет лишь мгновение но затроньте чувства и она станет вечной
|
|
|
22.02.2010, 21:34
|
#14
|
Hero
Регистрация: 10.12.2006
Сообщений: 1,260
|
Да просто random(20). Это от 0 до 19. Или тебе обязательно отрицательные числа нужны?
ругается тогда и не работает[/b]
|
Просто у меня такое ощущение что If A[i] mod 2 = 0 и т.д. в тело цикла for уже не входит :)
__________________
LifeStream
Lin Kuei
|
|
|
22.02.2010, 21:38
|
#15
|
Россошь_sity
Регистрация: 12.01.2008
Сообщений: 1,918
|
ну в принципе и так можно чтоб не гемороится
__________________
Идея живет лишь мгновение но затроньте чувства и она станет вечной
|
|
|
22.02.2010, 21:39
|
#16
|
Hero
Регистрация: 10.12.2006
Сообщений: 1,260
|
+ Массив у тебя 1..21, а циклы 1..20. Константы рулят :)
__________________
LifeStream
Lin Kuei
|
|
|
22.02.2010, 21:42
|
#17
|
Россошь_sity
Регистрация: 12.01.2008
Сообщений: 1,918
|
сделал масив 1-500 циклы 1-500 рандом 1-500 и в 0 часто блин чеж паскаль так любит ноль первым ставить ггг
__________________
Идея живет лишь мгновение но затроньте чувства и она станет вечной
|
|
|
22.02.2010, 21:45
|
#18
|
Hero
Регистрация: 10.12.2006
Сообщений: 1,260
|
Попробуй
for i := 1 to 21 do if a[i] = 0 then break else if (a[i] mod 2) = 0 then s := s + a[i];
__________________
LifeStream
Lin Kuei
|
|
|
22.02.2010, 21:48
|
#19
|
Россошь_sity
Регистрация: 12.01.2008
Сообщений: 1,918
|
эх ладно путь так завтра добавлю работу с файлами в прогу и нормуль
еще одна осталась не подскажешь?
Составьте программу, облегчающую работу секретаря школы. Напишите прорамму, которая ведет поиск номера телефона по введенной фамилии
на сколько я понял надо 2 массива, массив фамилии string, номера телефонов integer
базу заранее надо написать в тхт фамилии в одном номера в другом и как их писать в столбик через энтр?
потом в проге открыть оба или 1 тхт
var
f: text;
s: string;
begin
assign(f,'filename');
reset(f);
readln(f,s);
close(f);
end;
код работы с файлами
и я вот одного не пойму как они связываться будут?
__________________
Идея живет лишь мгновение но затроньте чувства и она станет вечной
|
|
|
22.02.2010, 21:52
|
#20
|
Hero
Регистрация: 10.12.2006
Сообщений: 1,260
|
В чистом паскале можно определять структуры, как в object паскале?
ЗЫ:
type
__MyStruct = record
____a, b: integer;
____c: string;
__end;
__________________
LifeStream
Lin Kuei
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
|