Βοήθεια με πίνακες σε πασκαλ

Ο τομέας μας. ;)
Απάντηση
artenakia
Δημοσιεύσεις: 5
Εγγραφή: Τρί Νοέμ 30, 2010 9:28 pm

Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από artenakia »

Γεια σε όλους !
Σαν νέος και εγώ έχω μερικές απορίες σε όσον άφορα την γλώσσα προγραμματισμού πασκαλ.
Πρόσφατα άρχισα να διαβάζω ένα βιβλίο και έχω φτάσει σε ένα κεφάλαιο που μιλάει για πινάκες. Δεν έχω καταφέρει να λύσω ούτε μια άσκηση με πινάκες .
Το βιβλίο έχει το παρακάτω παράδειγμα που όταν το εκτελώ δεν εμφανίζει τίποτα

Κώδικας: Επιλογή όλων

Program Lesson5_Program1;
var
  myarray :array[1..5] of integer;
  count1,count2 :integer; 
begin
for count1 := 1 to 5 do
  begin
  readln(myarray[count1]);
  end;
for count2 := 1 to 5 do
  begin
  write(myarray[count2]); 
  end;
  readln;
end.
Άμα μπορεί κάποιος ας ποσταρει κάποια λυμένη άσκηση με πινάκες και ας μου δώσει κάποιες βασικές εξηγήσεις. ευχαριστώ :)
chris
Δημοσιεύσεις: 528
Εγγραφή: Κυρ Δεκ 28, 2008 9:27 am

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από chris »

Write in C!
Sorry, αλλά δεν έχω γράψει γραμμή Pascal.

Σαν γενική συμβουλή, βάλε καναδυό print (ή write, ή όπως λέγεται η εντολή που γράφει σε stdout) για να δεις μέχρι που φτάνει το πρόγραμμα σου. Επίσης googlάρε:
http://pascalprogramming.byethost15.com/lesson10.php
Μετα από 397 δημοσιεύσεις, έβαλα και υπογραφή.
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από thetrojan01 »

Μια χαρά δουλεύει:

Κώδικας: Επιλογή όλων

[thetrojan01@laptop ~]$ fpc -TLINUX pask.pas
Free Pascal Compiler version 2.4.2 [2010/11/14] for i386
Copyright (c) 1993-2010 by Florian Klaempfl
Target OS: Linux for i386
Compiling pask.pas
Linking pask
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
16 lines compiled, 0.0 sec 
[thetrojan01@laptop ~]$ ./pask
1
2
3
4
5
12345
[thetrojan01@laptop ~]$ 
Δοκίμασε στην είσοδο, να εισάγεις { έναν ακέραιο, μετά έντερ } πέντε φορές.
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
artenakia
Δημοσιεύσεις: 5
Εγγραφή: Τρί Νοέμ 30, 2010 9:28 pm

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από artenakia »

Όντως δουλεύει άλλα δεν έχω καταλάβει κάτι αυτό είναι οι πίνακες?δηλαδή ένας πίνακας εμφανίζει τους αριθμούς η της λέξεις που εισάγουμε σε μια σειρά?
chris
Δημοσιεύσεις: 528
Εγγραφή: Κυρ Δεκ 28, 2008 9:27 am

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από chris »

artenakia έγραψε:Όντως δουλεύει άλλα δεν έχω καταλάβει κάτι αυτό είναι οι πίνακες?δηλαδή ένας πίνακας εμφανίζει τους αριθμούς η της λέξεις που εισάγουμε σε μια σειρά?
Ξαναδιάβασε το βιβλίο σου, ή googλαρε. Γενικά, ο πίνακας δεν εμφανίζει τίποτα. Μπορείς να πεις πως ο πίνακας είναι μια σειρά από μεταβλητές. Ένας πίνακας ακεραίων, για παράδειγμα, είναι μια σειρά από αριθμούς. Εάν ο πίνακας λέγεται numbers αναφερόμαστε στο 2ο στοιχείο με numbers[2], στο 5ο στοιχείο με numbers[5] και στο counter στοιχείο (counter είναι μεταβλητή) με numbers[counter].

Οι πίνακες χρησιμοποιούνται πολύ συχνά στον προ-stl κόσμο. Πχ, ας πούμε πως έχουμε μια εφαρμογή στην οποία δίνουμε 3 αριθμούς και μας βρίσκει τον μέσο όρο τους (αυτό γίνεται και χωρίς πίνακες και με 300 στοιχεία, αλλά λέμε τώρα) . Θα μπορούσαμε να κρατάμε τους αριθμούς ως n1, n2 και n3. Βέβαια, αν θέλαμε να κάνουμε το ίδιο 50 στοιχεία αντί για 3 θα είχαμε πρόβλημα. Για αυτό υπάρχουν οι πίνακες. Διαβάζουμε τους αριθμούς σε έναν πίνακα μέσα σε μία λούπα και από κει και πέρα τους επεξεργαζόμαστε.
Μετα από 397 δημοσιεύσεις, έβαλα και υπογραφή.
artenakia
Δημοσιεύσεις: 5
Εγγραφή: Τρί Νοέμ 30, 2010 9:28 pm

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από artenakia »

Δηλαδή αν μια άσκηση ζητάει να γράφει ένα πρόγραμμα που να γεμίζει έναν πίνακα ακεραίων ο οποίος είναι 10 θέσεων και στην συνέχεια να τα τυπώνει στην οθόνη. Έτσι είναι σωστό?

Κώδικας: Επιλογή όλων

Program pinakas_10_arithmon;
uses crt;
var
  pin1 : array[1..10] of integer;
  a,b,c :integer;
begin
  clrscr;
  b:=1;
for a := 1 to 10 do
begin
  clrscr;
  writeln('dose ',b,'o arithmo');
  readln(pin1[a]);
  b:=b + 1;
end;
for c :=1 to 10 do
begin
  write(pin1[c]);
end;
  readln;
end.
pman
Δημοσιεύσεις: 419
Εγγραφή: Τρί Φεβ 10, 2009 9:49 pm

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από pman »

artenakia έγραψε:Δηλαδή αν μια άσκηση ζητάει να γράφει ένα πρόγραμμα που να γεμίζει έναν πίνακα ακεραίων ο οποίος είναι 10 θέσεων και στην συνέχεια να τα τυπώνει στην οθόνη. Έτσι είναι σωστό?

Κώδικας: Επιλογή όλων

Program pinakas_10_arithmon;
uses crt;
var
  pin1 : array[1..10] of integer;
  a,b,c :integer;
begin
  clrscr;
  b:=1;
for a := 1 to 10 do
begin
  clrscr;
  writeln('dose ',b,'o arithmo');
  readln(pin1[a]);
  b:=b + 1;
end;
for c :=1 to 10 do
begin
  write(pin1[c]);
end;
  readln;
end.
Λογικά ναι... έτσι μου φαίνεται...
Εγώ πάντως θα σου πρότεινα να αφήσεις την Pascal και να μάθεις να γράφεις σε C.
artenakia
Δημοσιεύσεις: 5
Εγγραφή: Τρί Νοέμ 30, 2010 9:28 pm

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από artenakia »

Με τι προτείνεις να ξεκινήσω c η c++ ?
pman
Δημοσιεύσεις: 419
Εγγραφή: Τρί Φεβ 10, 2009 9:49 pm

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από pman »

artenakia έγραψε:Με τι προτείνεις να ξεκινήσω c η c++ ?
Με C .
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από thetrojan01 »

artenakia έγραψε:Με τι προτείνεις να ξεκινήσω c η c++ ?
Εγώ θα έλεγα C++. Δεν κερδίζεις κάτι απ' τη μετάβαση C->C++ (προσωπικά άρχισα από ++)
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
artenakia
Δημοσιεύσεις: 5
Εγγραφή: Τρί Νοέμ 30, 2010 9:28 pm

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από artenakia »

αν και offtopic...
Έχετε καμία πρόταση για βιβλίο?
thetrojan01
Δημοσιεύσεις: 712
Εγγραφή: Κυρ Δεκ 21, 2008 2:45 pm

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από thetrojan01 »

Μάθετε τη C++ απ' το μηδέν (C++ from the ground up). Το μοναδικό που διάβασα, με κάλυψε, έχει και για την STL μέσα.
svyr cercrv an inevrfnv cbyl tvn an gb iyrcrvf nhgb... cvtrar xnzvn ibygn yrj tj.
chris
Δημοσιεύσεις: 528
Εγγραφή: Κυρ Δεκ 28, 2008 9:27 am

Re: Βοήθεια με πίνακες σε πασκαλ

Δημοσίευση από chris »

Μάθε C, όχι C++.
Ο αντικειμενοστραφής της C++ μπορεί να σε μπερδέψει και είναι άχρηστος στους διαγωνισμούς.
Η αλλαγή από C σε C++ για την STL κυρίως είναι μια πανεύκολη αλλαγή που δεν θα σου πάρει χρόνο.

Εγώ σε διαγωνισμούς γράφω C++ για να έχω την stl, άλλα συνεχίζω να χρησιμοποιώ όλες τις συναρτήσεις της stdlib.h που αρχίζουν με str και mem και φυσικά stdio.h!

Εγώ άρχισα με το "Λυμένες ασκήσεις σε C". Δεν στο συνιστώ σαν κύριο βιβλίο, αλλά είναι *τέλειο* από την άποψη πως για κάθε πράγμα που μπορείς να κάνεις με την C, έχει μια άσκηση και την λύση της, μαζί με μια επεξήγηση. Μαθαίνεις γρήγορα και πρακτικά.
Μετα από 397 δημοσιεύσεις, έβαλα και υπογραφή.
Απάντηση