Βοήθεια με την C !

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
ARCHON
bit level
bit level
Posts: 30
Joined: Tue Oct 03, 2006 3:09 pm

Βοήθεια με την C !

Post by ARCHON » Wed Jan 03, 2007 10:31 pm

Γεια χαρά σε όλους και καλή χρονιά,
θέλω να φτιάξω ένα πρόγραμμα στην C , που από ένα αρχείο κειμένου (.txt, .dat κτλ) θα διαβάζει τα στατιστικά στοιχεία (αριθμούς) - π.χ ντομάδες 500 / πατάτες 300 / μανταρίνια 250 κτλ - και θα υπολογιζει τον μέσο όρο, την Διάμεσο (median), την Επικρατούσα τιμή (mode) και την Τυπική απόκλιση (std. deviation) .
Καλό θα είναι με κάποιον τρόπο να ερωτάται ο χρήστης για να μπορεί να επιλέξει το μέγεθος του δείγματος βάση του οποίου θα γίνουν οι υπολογισμοί κάθε φορά .

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

Ευχαριστώ,
αναμένω τα φώτα σας :!: ;) :roll:

* Σημειώνω να είναι σε C και όχι σε C++
Q: To be OR to be an Open sourcer..?

A: To be AND to be an Open sourcer..!

That really makes a difference, anyway whenever there is something "wrong" the answer to fix it has to be always logical ;)
User avatar
ARCHON
bit level
bit level
Posts: 30
Joined: Tue Oct 03, 2006 3:09 pm

Post by ARCHON » Thu Jan 04, 2007 10:24 am

Παραθέτω ό,τι έχω μέχρι στιγμής ,

'Ανοιγμα αρχείου κατ'επιλογή :

Code: Select all

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

void main()

{

      FILE *fopen(), *fp;

      int c ;
      // double  mean;

      char filename[40] ; 

      printf("Enter file to be displayed:"  );

      gets( filename ) ; 

      fp = fopen( filename, "r"); 

      c = getc( fp ) ;     

      while (  c != EOF )

      {

            putchar(c);   

            c = getc ( fp );  

      } 

      fclose( fp );


  
  system("PAUSE");	
  return 0;
}

'Ενα απλό παράδειγμα υπολογισμού του Μέσου όρου :

Code: Select all

int a, b;
double mean;

printf("dose ton proto arithmo a: ");
scanf("%d", &a);
printf("dose ton deftero arithmo b: ");
scanf("%d", &b);

mean = 0.5*(a+b);
printf("O mesos oros ton arithmon einai %d and %d is %g\n", a, b, mean);
Λίγη βοήθεια πως θα ενώσουμε τα δύο κομμάτια έτσι ώστε να μπορούμε να διαβάζουμε το περιέχομενο του αρχείου που επιλέξαμε και να υπολογίζουμε τον Μ.Ο δίχως να μας ενοχλούν τα γράματα που συνοδεύουν τους αριθμούς (π.χ ntomata 200 ) . Φυσικά ο Μ.Ο να υπολογίζεται για παρπάνω από 2 αριθμούς . :?: :roll:

* τα αρχεία θα είναι της μορφής :
ntomata 200
peponi 150
marouli 250
lemoni 110

κτλ..
Q: To be OR to be an Open sourcer..?

A: To be AND to be an Open sourcer..!

That really makes a difference, anyway whenever there is something "wrong" the answer to fix it has to be always logical ;)
User avatar
nap
Kilobyte level
Kilobyte level
Posts: 239
Joined: Tue Nov 23, 2004 5:25 pm
Location: In da ghetto
Contact:

Post by nap » Thu Jan 04, 2007 12:46 pm

Δες αυτό για τον μέσο όρο, χωρίς να αποθηκεύει τις τιμές και με την προυποθεση ότι υπάρχει μία λέξη πριν τον αριθμό στην κάθε γραμμή του αρχείου σου.

Code: Select all

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

void main()
{

	FILE *infile;
	char buffer[255];
	float f;
	float sum = 0;
	int count = 0;


	printf("Enter filename: ");
	scanf("%s",buffer);

	if((infile = fopen(buffer, "r"))==NULL)
	{
		printf("Error opening file \"%s\".\n", buffer);
		exit(0);
	}

	while(!feof(infile))
	{
		count++;
		fscanf(infile, "%s %f", buffer, &f);
		sum = sum + f;
	}

	fclose(infile);

	printf("The mean is : %f\n", sum/count);

	system("PAUSE");   
} 
Για τις άλλες ποσότητες που θές να υπολογίσεις ίσως θα πρέπει να αποθηκέυσεις τους αριθμούς σε έναν πίνακα...
It is by will alone I set my mind in motion...
User avatar
ARCHON
bit level
bit level
Posts: 30
Joined: Tue Oct 03, 2006 3:09 pm

Post by ARCHON » Sat Jan 06, 2007 11:40 pm

Ευχαριστώ πολύ ;)
Q: To be OR to be an Open sourcer..?

A: To be AND to be an Open sourcer..!

That really makes a difference, anyway whenever there is something "wrong" the answer to fix it has to be always logical ;)
Post Reply

Return to “Προγραμματισμός”