| 
	
		
	
	
		| Общий Разговоры на различные темы. |  
	
	
		
	
	
	
		|  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 код Выкл. 
 |  |  |  |