pseudokwdikas pws?

Γενικά θέματα για τις γλώσσες προγραμματισμού που δεν καλύπτονται από τις άλλες περιοχές της κατηγορίας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Gecpapad
Δημοσιεύσεις: 2
Εγγραφή: 06 Φεβ 2011 16:31

pseudokwdikas pws?

Δημοσίευση από Gecpapad » 07 Φεβ 2011 15:06

mou do8ike 1 provlima to opoio mou zitouse na ftiajw 1 programma kai meta na to ftiajw kai gia parousiasi se powerpoint metatrepontas to se pseudokwdika...to programma to eftija alla pws to sintasw se pseudokwdika den exw idea...einai codeblock to programma pou to eftiaja alla einai sxedon idio me tin C ektos opo tis extra entoles tis parallilias. Kamia voi8eia paizei me ton pseutokwdika?

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <limits>
#include <mpi.h>

#define TAG1 1
#define TAG2 2
#define TAG3 3

using namespace std;

int* findmm(int data[], int size);

int main(int argc, char *argv[]) {
int rank, processes;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &processes);

if (rank == 0) {
ifstream in;
int numbers;
in.open("data1.txt");
if (!in) {
cout << "to arxeio den mporei na anoixei!\n";
exit(1);
}

in >> numbers;
int part = numbers / processes;
int bpart = part + (numbers % processes);
int *btab = new int[bpart];
int *tab = new int[part];

for (int i = 0; i < bpart; i++)
in >> btab;

for (int i = 1; i < processes; i++) {
MPI_Send(&part, 1, MPI_INT, i, TAG1, MPI_COMM_WORLD);

for (int j = 0; j < part; j++)
in >> tab[j];
MPI_Send(tab, part, MPI_INT, i, TAG2, MPI_COMM_WORLD);
}
delete [] tab;

int *mm = new int[2];
int *mmpr = new int[2];
mm = findmm(btab, bpart);
delete [] btab;

for (int i = 1; i < processes; i++) {
MPI_Recv(mmpr, 2, MPI_INT, i, TAG3, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
mm[0] = min(mm[0], mmpr[0]);
mm[1] = max(mm[1], mmpr[1]);
}

delete [] mmpr;
cout << "teliko min = " << mm[0] << " teliko max = " << mm[1] << endl;
delete [] mm;

}

else {
int part;
MPI_Recv(&part, 1, MPI_INT, 0, TAG1, MPI_COMM_WORLD, MPI_STATUS_IGNORE);

int *tab = new int[part];
MPI_Recv(tab, part, MPI_INT, 0, TAG2, MPI_COMM_WORLD, MPI_STATUS_IGNORE);

int *mm = findmm(tab, part);
MPI_Send(mm, 2, MPI_INT, 0, TAG3, MPI_COMM_WORLD);
delete [] tab;
delete [] mm;
}

MPI_Finalize();
return 0;
}

int* findmm(int data[], int size) {
int *result = new int[2];

result[0] = numeric_limits< int >::max();
result[1] = numeric_limits< int >::min();

for (int i = 0; i < size; i++) {
result[0] = min(result[0], data);
result[1] = max(result[1], data);
}
return result;
}

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

pseudokwdikas pws?

Δημοσίευση από ThyClub » 07 Φεβ 2011 16:44

Ο ψευδοκώδικας είναι όταν θες να περιγράψεις τι κάνει ο κώδικας που έχεις φτιάξει .

Παράδειγμα το

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

for &#40;int i = 0; i < size; i++&#41; &#123;
result&#91;0&#93; = min&#40;result&#91;0&#93;, data&#91;i&#93;&#41;;
result&#91;1&#93; = max&#40;result&#91;1&#93;, data&#91;i&#93;&#41;;
&#125;
return result; 
μπορεί να γίνει:

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

για&#40;τιμη ίση με 0; αν η τιμή μικρότερη του μεγέθους; αύξησε τιμη&#41;&#123;
κελί πίνακα 1 παίρνει τιμή ίση με το ελάχιστο της τιμής;
κελί πίκαλα 2 παίρνει τιμή ίση με το μέγιστο της τιμής;
&#125;
επέστρεψε πίνακα;
Είναι ένας ωραίος τρόπος να αποδείξεις ότι έχεις λύσει την άσκηση κ δεν αντέγραψες. Βασικά αν δεν ξέρεις τι κάνει κάθε γραμμή του κώδικα σου τότε είναι αδύνατο να γράψεις ψευδοκώδικα.

Gecpapad
Δημοσιεύσεις: 2
Εγγραφή: 06 Φεβ 2011 16:31

pseudokwdikas pws?

Δημοσίευση από Gecpapad » 22 Φεβ 2011 19:05

Jexasa na pw euxaristw :D

i plaka einai oti tetoia paradigmata evriska kai sto google tote kai den ta pisteua...:S

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης