Τα πάντα για την C

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 11 Οκτ 2011, 13:23

migf1 έγραψε:
Τα βασικά τα θυμάμαι, για πες.


Βασικα ηθελα αρχικα να ρωτησω... για την γραμμικη και την τετραγωνικη.
Γραμμικη εχεις οταν εχεις απλα να γεμίσεις εναν μονοδιάστατο πινακα ?

Πχ αν εχω να γεμισω εναν

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


int array[3];

for(i=0; i=2; i++)
{
array[i]=i;
printf("\n\t%d",array[i]);
}



εδω η χρονικη πολυπλοκότητα ας πουμε σε βήματα ειναι 3 ?

(αν ειχα εμφωλιασμενο loop) θα ηταν της ταξης O(n^2) ε?

Επισης θα ηθελα να καταλαβω πως βγαινει μια πολυπλοκοτητα του στυλ O(nlogn)

:)
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 11 Οκτ 2011, 13:26

migf1 έγραψε:
Βασικά, σύμφωνα με την εκφώνηση που έχεις στην αρχή, όταν δίνω για νούμερο το 9 και κατόπιν ζητάω 3 πολλαπλάσια περιμένω να μου βγάλει 18, 36, 54 αλλά αυτό μου βγάζει μόνο το 18.


Ωραια. Ποια ειναι η ένσταση σου?

9*1=9
9*2=18
9*3=27

9,27 περιττοί αρα δεν εκτυπώνονται καν!

Δεν βγάζει ολα τα πολλαπλάσια... αν ο χρήστης δωσει οτι θελει 3 τοτε θα πρεπει να υπολογιζει τα 3 πρωτα.
Αν δωσει 5 τα 5 πρωτα αν δωσει 100 τα 100 πρωτα.... Για να παρεις την εξοδο που θέλεις

πρεπει να δωσεις το 9 και 6 πολλαπλασια οτι θες να υπολογιστουν. Έκανα καποιο λαθος στην αρχικη τεκμηριωση?
Τελευταία επεξεργασία από Star_Light και 11 Οκτ 2011, 13:29, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 11 Οκτ 2011, 13:27

Για τη γραμμική και την τετραγωνική σωστά το είπες. Για τα υπόλοιπα, το καλύτερο είναι να διαβάσεις ένα καλό βιβλίο, αν το σχετικό άρθρο της Wikipedia δεν σε βοηθάει (που μάλλον δεν θα σε βοηθάει).
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 11 Οκτ 2011, 13:30

Star_Light έγραψε:
migf1 έγραψε:
Βασικά, σύμφωνα με την εκφώνηση που έχεις στην αρχή, όταν δίνω για νούμερο το 9 και κατόπιν ζητάω 3 πολλαπλάσια περιμένω να μου βγάλει 18, 36, 54 αλλά αυτό μου βγάζει μόνο το 18.


Ωραια. Ποια ειναι η ένσταση σου?

9*1=9
9*2=18
9*3=27

9,27 περιττοί αρα δεν εκτυπώνονται καν!

Στο ότι δε αναφέρεται στην εκφώνηση πως στην περίπτωση των περιττών το πλήθος των πολλαπλασίων που βάζει ο χρήστης αναφέρεται στα συνολικά πολλαπλάσια, άρα είναι το ταβάνι και για τα ζυγά πολλαπλάσιά του. Έτσι όπως είναι γραμμένη, περίμενα να μου βγάλει τα 3 πρώτα ζυγά πολλαπλάσια του 9 (18, 36, 54)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 11 Οκτ 2011, 14:13

migf1 έγραψε:
Στο ότι δε αναφέρεται στην εκφώνηση πως στην περίπτωση των περιττών το πλήθος των πολλαπλασίων που βάζει ο χρήστης αναφέρεται στα συνολικά πολλαπλάσια, άρα είναι το ταβάνι και για τα ζυγά πολλαπλάσιά του. Έτσι όπως είναι γραμμένη, περίμενα να μου βγάλει τα 3 πρώτα ζυγά πολλαπλάσια του 9 (18, 36, 54)


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

/*---------------------------------------------------
* Upologizei ta pollaplasia enos arithmou
* orio sta pollaplasia pou upologizei to opoio
* epilegei o xristis , epiprostheta otan
* o arithmos pou 8a epilegetai gia na upologis8oun
* ta pollaplasia tou tha einai perittos arithmos
* tote tha ektupwnonte mono ta zuga tou pollaplasia
*
* version : 1.2 by Kostas
*--------------------------------------------------- */

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

// Constants

#define MAXINBUF 255+1

// Function Prototypes

void pollaplasia( const int /*num*/, const int /*nmuls*/ );
void zuga_pollaplasia_perittou( const int /*num*/, const int /*nmuls*/ );

// --------------------------------------------------------------------------------
int main( void ) // main function
{
char inbuf[ MAXINBUF ] = {'\0'};
int num = 0, nmuls = 0;

printf("Dwste arithmo: ");
fgets(inbuf, MAXINBUF, stdin);
num = atoi( inbuf );

printf("Posa pollaplasia na ypologistoyn; ");
fgets(inbuf, MAXINBUF, stdin); // the limit is given by user
nmuls = atoi( inbuf );

if ( num % 2 == 0 ) // num is even number
pollaplasia( num, nmuls );
else // num is odd number
zuga_pollaplasia_perittou( num, nmuls );

return 0;
}
// --------------------------------------------------------------------------------
void pollaplasia( const int num, const int nmuls )
{
int i=0, mul=0;

for (i=1; i < nmuls + 1; i++) // for count=1 till ... n+1 because
{ // the zero is not included
mul = i * num;
printf("%d ", mul);
}
putchar('\n');

return;
}
// --------------------------------------------------------------------------------
void zuga_pollaplasia_perittou( const int num, const int nmuls )
{
int i=0, j=0, mul=0;

printf("\nTa %d prwta zyga pollaplasia toy %d\n--------------------------------------------\n", nmuls, num);
for (i=1, j=0; j < nmuls; i++)
{
mul = i * num;
if ( mul % 2 == 0 ) {
printf("%d ", mul);
j++;
}
}
putchar('\n');

return;
}
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 11 Οκτ 2011, 14:34

Nαι ισως υπάρχει θεμα με την τεκμηριωση...

Βασικα ενας άρτιος δινει παντοτε άρτια πολλαπλασια. (Νομιζω)

Επομενως και ενας περιττος θα πρεπει να δωσει τα αρτια του... με αυτη τη λογικη παει να δουλεψει το προγραμμα.

Εγω λεω εστω ενας αριθμος... αν ειναι ζυγος οκ αν ειναι περιττος και εχεις επιλεξει 3 πολλαπλασια να εμφανιστουν
απο αυτα να περιμενεις μονο τα ζυγα ενω τα περιττα να τα αποκλεισεις...

απο την παραπανω σκεψη μου λοιπον υπάρχει αναντοιστιχια με αυτο που θα διαβασει κάποιος απο την τεκμηριωση migf1???
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 11 Οκτ 2011, 14:36

btw thanx για την διορθωσεις στον κωδικα!!!!!
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 11 Οκτ 2011, 14:45

Σου είπα τι κατάλαβα εγώ από την εκφώνηση, το τι θα κάνει το πρόγραμμά σου όμως το καθορίζεις εσύ :)
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό Star_Light » 11 Οκτ 2011, 15:27

migf1 έγραψε:Σου είπα τι κατάλαβα εγώ από την εκφώνηση, το τι θα κάνει το πρόγραμμά σου όμως το καθορίζεις εσύ :)


Άσχετο. Για την ναυμαχία έχεις ρωτήσει σε κάποιο ξένο φορουμ??? Εκτος απο το insomnia.
Έχω ενα καλο που μάλλον θα το ξερεις ισως και ο ιδιος αλλα μπορει και οχι. Ισως εκει σε βοηθησουν
με το παιχνιδι της ναυμαχιας στο σημειο που έχεις σκαλωσει.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Τα πάντα για την C/C++

Δημοσίευσηαπό migf1 » 11 Οκτ 2011, 16:00

Star_Light έγραψε:
migf1 έγραψε:Σου είπα τι κατάλαβα εγώ από την εκφώνηση, το τι θα κάνει το πρόγραμμά σου όμως το καθορίζεις εσύ :)


Άσχετο. Για την ναυμαχία έχεις ρωτήσει σε κάποιο ξένο φορουμ??? Εκτος απο το insomnia.
Έχω ενα καλο που μάλλον θα το ξερεις ισως και ο ιδιος αλλα μπορει και οχι. Ισως εκει σε βοηθησουν
με το παιχνιδι της ναυμαχιας στο σημειο που έχεις σκαλωσει.

Thanks ρε συ, αλλά δεν έχω σκαλώσει επειδή δεν μπορώ να το κάνω. Έχω σκαλώσει επειδή είναι χρονοβόρο κι επειδή χρειάζονται πολλές δοκιμές μετά για να βεβαιωθώ πως λειτουργεί σωστά.
Go under the hood with C: Pointers, Strings, Linked Lists
Άβαταρ μέλους
migf1
powerTUX
powerTUX
 
Δημοσιεύσεις: 2082
Εγγραφή: 03 Ιουν 2011, 16:32
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι