Απο ψευδογλώσσα σε c..

Συζητήσεις για την γλώσσα C και C++

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

Απάντηση
gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Απο ψευδογλώσσα σε c..

Δημοσίευση από gvre » 20 Δεκ 2010 20:19

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

#include <stdio.h>
#include <stdlib.h>

int
main &#40;void&#41;
&#123;
        int num;
        FILE *fp = fopen&#40;"f.txt", "r"&#41;;

        if &#40;fp == NULL&#41;
                return 1;

        while &#40;fscanf&#40;fp, "%d", &num&#41; == 1&#41;
        &#123;
                printf&#40;"Diavasa&#58; %d\n", num&#41;;
        &#125;
        fclose&#40;fp&#41;;

        return EXIT_SUCCESS;
&#125;
Φτιάξε ένα αρχείο f.txt, βάλε μέσα μερικούς αριθμούς (1 σε κάθε γραμμή) και τρέξε το πρόγραμμα. Μετά κάνε ό,τι τροποποιήσεις χρειάζονται για να λειτουργήσει στην περίπτωσή σου.

ps. Διάβασε το http://www.cs.bu.edu/teaching/c/file-io/intro/

skoufos
Δημοσιεύσεις: 20
Εγγραφή: 10 Δεκ 2010 19:02

Απο ψευδογλώσσα σε c..

Δημοσίευση από skoufos » 20 Δεκ 2010 20:38

Δυστηχώς ενώ ο κώδικας σου δεν μου βγάζει λάθη μετά το compile, και ενώ φτιάχνω το αρχείο f.txt και τρέχει κανονικά, δεν προλαβαίνω να δώ αποτελέσματα.
Eχω βάλει το system ("PAUSE"); κανονικά και τίποτα.
Δεν ξέρω βέβαια αν κάνω καλά που το αρχείο f.txt το αποθηκεύω στο desktop. Αλλα δοκίμασα να το αποθηκεύσω και αλλού και πάλι τίποτα.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Απο ψευδογλώσσα σε c..

Δημοσίευση από gvre » 20 Δεκ 2010 20:42

Το αρχείο θα πρέπει να βρίσκεται στον ίδιο φάκελο με το εκτελέσιμο αλλιώς θα πρέπει να χρησιμοποιήσεις απόλυτο μονοπάτι στην fopen.

skoufos
Δημοσιεύσεις: 20
Εγγραφή: 10 Δεκ 2010 19:02

Απο ψευδογλώσσα σε c..

Δημοσίευση από skoufos » 20 Δεκ 2010 20:46

Ωραία το προβλημά λύθηκε και μου διαβάζει τους αριθμούς που έγραψα κανονικά. Για να δούμε τώρα πώς θα το κουμαντάρουμε :ρ...
Ευχαριστώ πολυ!!

skoufos
Δημοσιεύσεις: 20
Εγγραφή: 10 Δεκ 2010 19:02

Απο ψευδογλώσσα σε c..

Δημοσίευση από skoufos » 20 Δεκ 2010 21:02

αααααααααααααααααααααααααααααααααα!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Εχω τον κώδικα που βλέπαμε πρίν, και μετά την αλλαγή με το κομμάτι που μου έγραψες ο κώδικας τελικώς είναι έτσι :

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

 # include <stdio.h>
# include <stdlib.h>
int main&#40;&#41; &#123;
    
int r,n,t;
int i,j,m,s;
int a&#91;1000&#93;&#91;1000&#93;;
int x&#91;1000&#93;;
int b&#91;1000&#93;;
float pivot;
int num;
       
       
        FILE *fp = fopen&#40;"Gauss_in.txt", "r"&#41;;

        if &#40;fp == NULL&#41;
                return 1;

        &#40;fscanf&#40;fp, "%d", &num&#41; == 1&#41;
       

for &#40;r=0; r<n-1; r++&#41;&#123;
   a&#91;r&#93;&#91;r&#93; = pivot;
   r=t;
   for &#40;i=0; i<r+1; i++&#41;&#123;
      if &#40;abs&#40;pivot&#41; < abs&#40;a&#91;i&#93;&#91;r&#93;&#41;&#41;&#123;
         a&#91;i&#93;&#91;r&#93; = pivot;
         i = t;
      &#125;
  &#125;
  if &#40;pivot == 0&#41;&#123;
   exit&#40;0&#41;;
  &#125;
  if &#40;t!=r&#41;&#123;
     for &#40;j=r; j<=n+1; j++&#41;&#123;
        a&#91;r&#93;&#91;j&#93; = a&#91;t&#93;&#91;j&#93;;
     &#125;
  &#125;
  for &#40;i=r+1; i<=n; i++&#41;&#123;
     m=&#40;a&#91;i&#93;&#91;r&#93;/pivot&#41; ;
    for &#40;j=r+1; j<=n+1; j++&#41;&#123;
       a&#91;i&#93;&#91;j&#93;=a&#91;i&#93;&#91;j&#93; - m*a&#91;r&#93;&#91;j&#93;;
    &#125;
  &#125;

&#125;

  if&#40;a&#91;n&#93;&#91;n&#93;==0&#41;&#123;
    exit&#40;0&#41;;
  &#125;

x&#91;i&#93;=&#40;a&#91;n&#93;&#91;n+1&#93;/a&#91;n&#93;&#91;n&#93;&#41;;

for &#40;i=n-1; i>=1; i--&#41;&#123;
   s = 0;
   for &#40;j=i+1; j<=n; j++&#41;&#123;
     s = s+&#40;a&#91;i&#93;&#91;j&#93; * b&#91;j&#93;&#41;;
   &#125;
   x&#91;i&#93; = &#40;a&#91;i&#93;&#91;n+1&#93;-s&#41;/a&#91;i&#93;&#91;i&#93;;
&#125;

printf&#40;"\n apotelesma x=%d",x&#41;;
getchar&#40;&#41;;
return 0;
&#125; 
έχω προσθέσει στην αρχή του προγράματος το κομμάτι που μου έγραψες απλώς το fclose(fp); θέλω να το γράψω κάτω κάτω ώστε μετά τις απαραίτητες ενέργειες να αποθηκεύει τα δεδομένα στο αρχείο εξόδου (Gauss_out.txt).
Τώρα λοιπόν μου βγάζει πολλά λάθη ξεκινόντας απο την πρώτη for και μου λέει
....synatx error before for....

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Απο ψευδογλώσσα σε c..

Δημοσίευση από gvre » 20 Δεκ 2010 21:04

(fscanf(fp, "%d", &num) == 1)
Από εδώ λείπει κάτι :)

skoufos
Δημοσιεύσεις: 20
Εγγραφή: 10 Δεκ 2010 19:02

Απο ψευδογλώσσα σε c..

Δημοσίευση από skoufos » 20 Δεκ 2010 21:10

Aφού έτσι μου το έγραψες πρίν και έτρεχε κανονικά λαο έτσι το δείχνει και στην ιστοσελίδα που μου έστειλες :Ρ
Δέν μπορώ να καταλάβω!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Απο ψευδογλώσσα σε c..

Δημοσίευση από gvre » 20 Δεκ 2010 21:13

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

while &#40;fscanf&#40;fp, "%d", &num&#41; == 1&#41; 
&#123; 
         printf&#40;"Diavasa&#58; %d\n", num&#41;; 
&#125; 
Αυτό έστειλα. Είναι το ίδιο με αυτό που έχεις γράψει εσύ;

skoufos
Δημοσιεύσεις: 20
Εγγραφή: 10 Δεκ 2010 19:02

Απο ψευδογλώσσα σε c..

Δημοσίευση από skoufos » 20 Δεκ 2010 21:13

;


xaxaxaxaxaxa

skoufos
Δημοσιεύσεις: 20
Εγγραφή: 10 Δεκ 2010 19:02

Απο ψευδογλώσσα σε c..

Δημοσίευση από skoufos » 20 Δεκ 2010 21:14

Ναι οκ κατάλαβα!!!!
αυτο το ρημάδι το ερωτηματικό!!!
αλλα αν δεν έχεις την εμπειρία ψάχνεις μία ώρα!!!

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Απο ψευδογλώσσα σε c..

Δημοσίευση από gvre » 20 Δεκ 2010 21:15

Ξανακοίταξέ το και θα δεις ότι ΔΕ λείπει το ερωτηματικό αλλά το while.

skoufos
Δημοσιεύσεις: 20
Εγγραφή: 10 Δεκ 2010 19:02

Απο ψευδογλώσσα σε c..

Δημοσίευση από skoufos » 20 Δεκ 2010 21:18

Μάλιστα, απλώς στην αρχή συμπλήρωσα το ερωτηματικο και δεν έβγαζε λάθη και νόμιζα πως αυτό ήταν!! ευχαριστώ!!

skoufos
Δημοσιεύσεις: 20
Εγγραφή: 10 Δεκ 2010 19:02

Απο ψευδογλώσσα σε c..

Δημοσίευση από skoufos » 20 Δεκ 2010 21:34

Τελείωσα λοιπόν τον κώδικα, και κάτω κάτω θέλω να μου αποθηκεύει το αποτέλεσμα σε ενα αρχείο gauss_out.txt
κάτω κάτω λοιπόν στον κώδικα προσέθεσα αυτό που θα φανεί και μου βγάζει λάθος.

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

# include <stdio.h>
# include <stdlib.h>
int main&#40;void&#41; &#123;
    
int r,n,t;
int i,j,m,s;
int a&#91;1000&#93;&#91;1000&#93;;
int x&#91;1000&#93;;
int b&#91;1000&#93;;
float pivot;
int num;
       
       
        FILE *fp = fopen&#40;"Gauss_in.txt", "r"&#41;;

        if &#40;fp == NULL&#41;
                return 1;

      while  &#40;fscanf&#40;fp, "%d", &num&#41; == 1&#41;
      &#123;
       

for &#40;r=0; r<n-1; r++&#41;&#123;
   a&#91;r&#93;&#91;r&#93; = pivot;
   r=t;
   for &#40;i=0; i<r+1; i++&#41;&#123;
      if &#40;abs&#40;pivot&#41; < abs&#40;a&#91;i&#93;&#91;r&#93;&#41;&#41;&#123;
         a&#91;i&#93;&#91;r&#93; = pivot;
         i = t;
      &#125;
  &#125;
  if &#40;pivot == 0&#41;&#123;
   exit&#40;0&#41;;
  &#125;
  if &#40;t!=r&#41;&#123;
     for &#40;j=r; j<=n+1; j++&#41;&#123;
        a&#91;r&#93;&#91;j&#93; = a&#91;t&#93;&#91;j&#93;;
     &#125;
  &#125;
  for &#40;i=r+1; i<=n; i++&#41;&#123;
     m=&#40;a&#91;i&#93;&#91;r&#93;/pivot&#41; ;
    for &#40;j=r+1; j<=n+1; j++&#41;&#123;
       a&#91;i&#93;&#91;j&#93;=a&#91;i&#93;&#91;j&#93; - m*a&#91;r&#93;&#91;j&#93;;
    &#125;
  &#125;

&#125;

  if&#40;a&#91;n&#93;&#91;n&#93;==0&#41;&#123;
    exit&#40;0&#41;;
  &#125;

x&#91;i&#93;=&#40;a&#91;n&#93;&#91;n+1&#93;/a&#91;n&#93;&#91;n&#93;&#41;;

for &#40;i=n-1; i>=1; i--&#41;&#123;
   s = 0;
   for &#40;j=i+1; j<=n; j++&#41;&#123;
     s = s+&#40;a&#91;i&#93;&#91;j&#93; * b&#91;j&#93;&#41;;
   &#125;
   x&#91;i&#93; = &#40;a&#91;i&#93;&#91;n+1&#93;-s&#41;/a&#91;i&#93;&#91;i&#93;;
&#125;

fprintf&#40;fp,"%d", &num&#41;&#41;;
fclose&#40;fp&#41;;

return 0;
&#125; 
&#125;

skoufos
Δημοσιεύσεις: 20
Εγγραφή: 10 Δεκ 2010 19:02

Απο ψευδογλώσσα σε c..

Δημοσίευση από skoufos » 21 Δεκ 2010 21:08

Ρε παιδιά μία τελευταία βοήθεια για να την τελειώσω τη ρημαδοάσκηση!!!! αυτό το τελευταίο θέλω, πως θα αποθηκεύσω υα δεδομένα εξόδου σε ένα αρχείο με όνομα Gauss_out.txt??? Ευχαριστω!!

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Απο ψευδογλώσσα σε c..

Δημοσίευση από dva_dev » 21 Δεκ 2010 22:38

Δοκίμασε κάτι τέτοιο:

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

f = fopen&#40;"Gauss_out.txt", "w"&#41;;
for &#40;i=0;i<n;i++&#41;
	fprintf&#40;f, "%d\n", x&#91;i&#93;&#41;;
fclose&#40;f&#41;;

Απάντηση

Επιστροφή στο “C, C++”

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

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