Zadanie Szkolne "Lista rekordów w rekordzie"

0

Cześć dopiero zaczynam przygodę z programowaniem ale nad tym przykładem siedzę już drugi dzień i ruszyć dalej nie mogę. Program ma wczytać listę liczb następnie, liczbą parzystym przyznać wartość label := true a na koniec wypisać liczby parzyste wykorzystując ta wartość. Niestety utknąłem już na samym starcie, nie mam pomysłu jak wczytać wartość listy.

Ograniczenia:
Program ma być wykonany na Pascal (fpc 3.0.4).

Kod:

program zaznaczanie_licz_parzystych_w_liscie;
type	elem=record
		data: integer;
		labell: boolean
		end;
		tab=array[1..10]of elem;
		lst = record
		elementy: tab;
		ile: integer
		end;
var
    i: integer;
    x: lst;
    
begin
	writeln('poczatek');
    read(x.ile); readln; writeln(x.ile);
    for i:=1 to x.ile do
    	begin
    	readln(tab[i].data)
    	end;
	(*If data mod 2 = 0 then labell:=true;*)
	(*If labell then writeln(data)*)
end.
0

Podaj pełną treść zadania, z tego co napisałeś to wystarczy ci ta twoja tab=array[1..10]of elem;

0

Tytuł zadania: zaznaczanie elementów w liście przez dodanie znacznika

Treść zadania:
program zaznaczanie_licz_parzystych_w_liście;

type elem=record

                    data: integer;

                    label: boolean

                end;

     tab=array[1..10]of elem;

     lst = record
                elementy: tab;
                ile: integer
             end;
var
    i: integer;
    x: lst;
    
begin

   (*wczytaj listę*)

  (*zaznacz liczby parzyste wypełniajac pole label dla liczb parzystych wartością "true"*)

   (*wypisz liczby parzyste posługując się zaznaczeniami*)


end.

Tak to dostałem od razu trzeba usunąć błąd z nazwą programu "ś" na "s" a potem jeszcze zostało użyte zarezerwowane słowo "label" przy deklaracji rekordu.

1

Zacznij od przeczytania jakiegoś kursu z totalnymi podstawami. Bo mylisz nazwę zmiennej z jej typem. Aczkolwiek to jest ewidentny przejaw autosabotażu poprzez nadawanie nieznaczących oraz wręcz mylących nazw zmiennym oraz typom. Jako prosty początek - zabroń sobie tworzenie typu bez dużej literki T na początku nazwy.

readln(x.ile); 
for i:=1 to x.ile do readln(x.elementy[i].data);
for i:=1 to x.ile do x.elementy[i].labell:=not boolean(x.elementy[i].data and 1);
for i:=1 to x.ile do if x.elementy[i].labell then writeln(x.elementy[i].data);
0

prog.pas(19,25) Error: identifier idents no member "tab"
prog.pas(20,28) Error: identifier idents no member "tab"

Wywala go przy drugim "for"

0

Dziękuje bardzo za pomoc z tym zadaniem, trochę przerobiłem wrzucam dla potomnych może komuś się przyda

program zaznaczanie_licz_parzystych_w_liscie;
type	elem=record
		data: integer;
		labell: boolean
		end;
		tab=array[1..10]of elem;
		lst = record
		elementy: tab;
		ile: integer
		end;
var
    i: integer;
    x: lst;
    
begin
	writeln('poczatek'); 
	readln(x.ile); 
	for i:=1 to x.ile do readln(x.elementy[i].data);
	for i:=1 to x.ile do x.elementy[i].labell:=false;
	for i:=1 to x.ile do
	If (x.elementy[i].data) mod 2 = 0 then (x.elementy[i].labell):=true;
	for i:=1 to x.ile do if x.elementy[i].labell then writeln(x.elementy[i].data);
end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1