Przeglądanie tablic metodą bezpośrednią i pośrednią

0

Witam mam takie zadanie: Utworzyć tablicę (np. 4 elementy) Struktur zawierających imiona (tablica char) i numery telefonów (zmienna long). Przejrzeć tablicę metodą bezpośrednią (operator kropki) i pośrednią korzystając ze wskaźnika.

Więc napisałem taki program i właśnie niewiem czy ma byc napisany w ten sposób więc moje pierwsza prośba to ewentualne poprawienie mojego programu(głównie nie jestem pewien deklaracji ) a druga prosba dotyczy wytłumaczenia o co chodzi z tymi metodami bezpośrednimi i posrednimi.

program Dziwny;

type
Dane = record
imie:array[1..16] of char;
telefon:longint;
end;
var
osoby:array[1..4] of dane;
a,b:integer;
begin

for a:=1 to 4 do
begin
writeln('Osoba numer: : ',a);
write('Imie : ');  readln(osoby[a].imie[1..16]);
write('telefon:  '); readln(osoby[a].telefon);
end;
writeln;
write('Podaj numer osoby ktorej dane chcesz zobaczyc: ');  read(a);
writeln('Osoba numer: ',a);
writeln('imie: ',osoby[a].imie[1..16]);
writeln('telefon: ',osoby[a].telefon);
writeln;
end.

Bardzo proszę o pomoc

0
na początku napisał(a)

Przejrzeć tablicę metodą bezpośrednią (operator kropki) i pośrednią korzystając ze wskaźnika.

kilka linii ponizej napisał(a)

o co chodzi z tymi metodami bezpośrednimi i posrednimi

Czy sam sobie nie odpowiedziałeś na to pytanie...?

program Dziwny;

Zadanie to nie jest dziwne, tylko złożonością przewyższa Twoją zdolność wyobrażeniową :)

wiki napisał(a)

Typy zmiennych

Każda zmienna oraz stała musi być określonego typu zmiennych, tj. przyjmuje wartości z określonego, dopuszczonego zbioru wartości. Mogą one być zarówno proste, jak i złożone. Dostęp do wartości pewnej danej może być pośredni lub bezpośredni.

Rozróżnia się trzy zasadnicze rodzaje typów wartości:

  • proste (dostęp bezpośredni),
  • strukturalne (dane złożone, dostęp bezpośredni),
  • referencyjne (dostęp pośredni).

Zajrzyj tu i poczytaj:
http://pl.wikipedia.org/wiki/Object_Pascal

0

no dobrze ale w raz nie wiem czy dobrze rozumiem program :). Czy może ktoś wysłać początek kodu żeby naprowadzić mnie na dobrą ścieżkę???

0

Dobrze rozumiesz. Teraz poczytaj o wskaźnikach i oprogramuj dla nich odczyt informacji z rekordu.

BTW: Formatuj kod:

program Dziwny;
 
type
  Dane = record
    Imie: array [1..16] of char;
    Telefon: Longint;
  end;

var
  Osoby: array [1..4] of Dane;
  a, b: Integer;
begin 
  for a := 1 to 4 do
  begin
    WriteLn('Osoba numer: : ',a);  

    WriteLn('Imie: ');
    ReadLn(Osoby[a].Imie[1..16]);

    Write('Telefon:  ');
    ReadLn(Osoby[a].Telefon);
  end;

  WriteLn;
  Write('Podaj numer osoby ktorej dane chcesz zobaczyc: ');
  Read(a);

  WriteLn('Osoba numer: ',a);
  WriteLn('imie: ', Osoby[a].Imie[1..16]);
  WriteLn('telefon: ', Osoby[a].Telefon);

  ReadLn;
end.

Zamiast tablicy znaków stosuj String[16].

0

Nie mogę zastosować string przecież w zadaniu mam char

0

Do hiob21

Witam co do twojego programu to wydaje mi się że bedzie on wyglądał w ten sposób ale nie jestem pewien więc jeżeli jest źle to niech mnie ktoś poprawi:

program Dziwny;

type
  Dane = record
    imie : array[1..16] of char;
    telefon : longint;
  end;
var
  osoby : array[1..4] of dane;
  a, b : integer;
begin
  for a := 1 to 4 do
  begin
    writeln('Osoba numer: : ', a);
    write('Imie : ');
    readln(osoby[a].imie[1..16]);
    write('telefon: ');
    readln(osoby[a].telefon);
  end;
  writeln;
  writeln('Przegladanie tablicy metoda bezposrednia:');
  writeln;
  writeln('Osoba numer 1 imie: ', osoby[1].imie, 'telefon: ', osoby[1].telefon);
  writeln('Osoba numer 2 imie: ', osoby[2].imie, 'telefon: ', osoby[2].telefon);
  writeln('Osoba numer 3 imie: ', osoby[3].imie, 'telefon: ', osoby[3].telefon);
  writeln('Osoba numer 4 imie: ', osoby[4].imie, 'telefon: ', osoby[4].telefon);
  writeln;
  writeln('Przegladanie tablicy metoda posrednia: ');
  writeln;
  write('Podaj numer osoby ktorej dane chcesz zobaczyc: '); read(a);
  writeln('Osoba numer: ', a);
  writeln('imie: ', osoby[a].imie[1..16]);
  writeln('telefon: ', osoby[a].telefon);
  writeln;
end.
0
hiob21 napisał(a)

Nie mogę zastosować string przecież w zadaniu mam char

A String to nie tablica znaków typu Char? Przecież, że tak. Przy okazji mógłbyś zagiąć belfra :)

0

no dobra :) ale jest ktos w stanie mi powiedziec czy dobrze jest ten kod???

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