Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2010, 09:31   #1
Shindji
 
Регистрация: 17.02.2010
Сообщений: 8
По умолчанию сформировать списки по определенному правилу

народ помогите разобраться
нужно сформировать список L1 и L2 по следующему правилу: в L1 поместить четные положительные элементы списка L, в L2 - нечетные отрицательные элементы списка и подсчитать количество компонентов в списках L1 и L2.
Shindji вне форума Ответить с цитированием
Старый 17.02.2010, 09:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Язык то какой?
Какой список то? О чем вообще речь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.02.2010, 10:03   #3
Shindji
 
Регистрация: 17.02.2010
Сообщений: 8
По умолчанию

язык Паскаль, список не динамический
Shindji вне форума Ответить с цитированием
Старый 17.02.2010, 10:58   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что-то вроде этого?
Код:
   var q,w,e:array[1..10] of integer;
   i,a,s:integer;
begin   a:=1;s:=1;
 for i:=1 to length(q) do begin
   q[i]:=10-random(20);
   write(q[i]:5);
   if (q[i]>0)and(q[i] mod 2=0) then begin w[a]:=q[i];inc(a);end;
   if (q[i]<0)and(q[i] mod 2<>0) then begin e[s]:=q[i];inc(s);end;
 end; writeln;
 writeln;
 for i:=1 to a do if w[i]<>0 then write(w[i]:5); writeln;
 for i:=1 to a do if e[i]<>0 then write(e[i]:5); writeln;

 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.02.2010, 14:52   #5
Shindji
 
Регистрация: 17.02.2010
Сообщений: 8
По умолчанию

нет не так, не таким способом нужно( у меня есть пример похожей задачи
сейчас выложу
Shindji вне форума Ответить с цитированием
Старый 17.02.2010, 14:53   #6
Shindji
 
Регистрация: 17.02.2010
Сообщений: 8
По умолчанию

Пусть необходимо сформировать два списка действительных элементов: Listl и List2. Минимальный элемент списка Listl поместить первым в List2, максимальный элемент второго списка List! поместить последним в список Listl. Если количество элементов соответствующего списка четно, вставить в середину списка значение среднего арифметического его элементов, если нечетно - удалить центральный элемент и на его место поместить значение среднего арифметического.
{Programme: Lists}
{Cel': obrabotka dinamicheskih spiskov.}
{Peremenniy: Listl, List2 - spisok deistvitelniyh elementov.}
{Podprogrammiy}
{InPutList - procedyra woda spiska;}
{OutPutList - procedyra viyvoda spiskaa;}
{MinElem - fynkciyi opredelenii minimal'подо elementa spiska/}
{MaxElem - fynkciyi opredelenii maximal'nogo elementa spiska;}
{LenList - funkciy opredelenii kolichestva elementov spiska;}
{SrArif - funkciy opredelenii srednego arifmeticheskogo elementov
spiska;}
{FindElem - funkciy poiska elementov spiska;}
{InsElem - procedyra ydalenii elementa spiska;}
{Chet - procedyra vstavki srednego arifmeticheskogo elementov
spiska;}
program list; uses crt; type
pList=Aelem; elem=record
data:real; nextList; end;
{procedura woda}
procedure inputlist (name:string; var listList); Var
n,i:integer; znach:real; elnew,elpredList; begin {inputlist} clrscr;
write('vvedite kol-vo elementov spiska ',Name,':•);
readln(n) ; list:«nil;
write('vvedite elementi spiska ',Name,':'); for i:=l to n do begin read(znach);
Shindji вне форума Ответить с цитированием
Старый 17.02.2010, 14:54   #7
Shindji
 
Регистрация: 17.02.2010
Сообщений: 8
По умолчанию

new(elnew); elnew^ .data:=znach; elnewA.next:=nil ; if List=nil then
list:=elnew else
elpredA . next: =*elnew; elpred:=elnew; end; end;{inputlist}
{procedura vivoda}
procedure outputlist (name:string; listList); Var
i:integer; begin {outputlist}
write('elementi spiska',Name,' : '); while listonil do begin
write(listA.data:5:2,' '); list:=listA.next; end; {writeln;} end;{outputlist}
{functiya poiska minimalnogo elementa spiska} function minelem (listList):real; var minList; begin {minelem} min:=list; while listonil do begin
if listA .data<min/4 .data then
min:=list; list:=listA.next; end; minelem: =minA.data; end;{minelem}
Shindji вне форума Ответить с цитированием
Старый 17.02.2010, 14:54   #8
Shindji
 
Регистрация: 17.02.2010
Сообщений: 8
По умолчанию

{functiya poiska maximalnogo elementa spiska} function maxelem (listList):real; var maxList; begin {maxelem} max:=list; while listonil do begin
if listA.data>maxA.data then
max:=list; list:=listA.next; end; maxelem:=maxA.data; end;{maxelem}
{functiya opredeleniya kolichestvo elementov spiska} function lenlist (listList):integer;
Shindji вне форума Ответить с цитированием
Старый 17.02.2010, 14:54   #9
Shindji
 
Регистрация: 17.02.2010
Сообщений: 8
По умолчанию

var
i:integer; begin {lenlist} i:=0;
while listonil do begin inc(i);
listi=listA .next; end; lenlist *.=i; end;{lenlist}
{functiya vichesleniya srednego arifmeticheskogo elementov spiska} function srarif (listList):real; var i:integer; sr:real; begin {srarif} i:=0; sr:=0;
while listonil do begin
sri=sr+listA.data; listi=listA.next; inc(i) ; end; srarif:=sr/i; end;{srarif}
{fynctiya poiska elementa po nomery v spiske} Function FindElem(n:integer;ListiPList):PLis t; var
i:integer; begin {FindElem} for i:-l to n-1 do List:=ListA.next; FindElem:■ List end; {FindElem} {procedura ydaleniay elementa po nomery v spiske} Procedure DelElem(n:integer; var ListiPlist); var
El: PList; begin {DelElem} Eli=FindElem(n,List)A.next; FindElem (n-1,List)A.next:=El; End; {DelElem} {procedura vstavki elementa v spisok na zadannyu poziciu} Procedure InsElem(n:integer; Elem:real; Var ListiPlist); var
EINew: PList; begin {InsElem} new(EINew); ElNewA.Data:=Elem; If noi then begin
Shindji вне форума Ответить с цитированием
Старый 17.02.2010, 14:55   #10
Shindji
 
Регистрация: 17.02.2010
Сообщений: 8
По умолчанию

ElNewA.nexti=FindElem(n-l,List)A.next; FindElem(n-1, List)A.next:=ElNew; end else begin
ElNewA.nexti=list; listi=ElNew; end; end;{InsElem}
{procedura vstavki srednego arifmeticheskogo v spisok}
procedure Chet(niinteger; Var ListList);
Var
Sireal; begin{chet}
Si^Srarif(list) ; If odd(n) then begin
delelem(n div 2+1, List); inselem(n div 2+1,S, List); end else
inselem(n div 2+1,S, List); end;{chet}
var
listl,list2List; begin
inputlistClistl' ,listl) ; inputlist('list2 ', list2); if (listl=nil) or (list2=nil) then begin writeln(' Odin spisok pust'); exit; end; writelnClshodnie dannie1); outputlist('listl',listl); writeln; outputlist('list2',list2);
writeln; inselem(l,Minelem(listl), List2); inselem(Lenlist(listl)+l,Maxelem(li st2) , Listl); chet(Lenlist(listl),Listl);
writeln; outputlist('listl', listl); chet(Lenlist(list2),List2);
writeln; outputlist('list2',list2); end.
Shindji вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение в столбце с числами строк, сумма чисел которых равна определенному значению KNatalia Microsoft Office Excel 2 16.09.2009 08:42
Объединение нескольких таблиц в одну (по определенному параметру) iona БД в Delphi 13 18.06.2009 19:34
Удаление строк по определенному критерию Franck Microsoft Office Excel 4 16.02.2009 11:27
Преобразовать последовательность по правилу Григорийpnz Паскаль, Turbo Pascal, PascalABC.NET 1 18.11.2008 18:31