H ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 8 - ΔΕΙΚΤΕΣ - ΕΦΑΡΜΟΓΗ 1

preview_player
Показать описание
ΠΕΡΙΕΧΟΜΕΝΑ ΒΙΝΤΕΟ
Ασκήσεις
1) Υπολογισμός Ριζών Δευτεροβάθμιας Εξισώσης

======================================
ΠΕΡΙΕΧΟΜΕΝΑ ΜΑΘΗΜΑΤΟΣ
Α. Δείκτες
1) Η μνήμη του υπολογιστή
2) Η έννοια του δείκτη
3) Ορισμός Δείκτη
4) Απόδοση τιμής σε δείκτη (Ο τελεστής &)
5) Απόδοση τιμής μέσω δείκτη (ο τελεστής *)
6) Παράδειγμα χρήσης δείκτη

Β. Δείκτες και Πίνακες
1) Το όνομα ενός πίνακα είναι δείκτης
2) Αποθήκευση ενός πίνακα στη μνήμη
3) Αριθμητική Δεικτών
4) Ισοδύναμος Συμβολισμός για πρόσβασή σε πίνακα

Γ. Δείκτες και Συναρτήσεις
1) Διοχέτευση Δείκτη σε Συνάρτηση
2) Διοχέτευση Ορίσματος σε Συνάρτηση μέσω Τιμής
3) Διοχέτευση Ορίσματος σε Συνάρτηση μέσω Αναφοράς

Δ. Παρατηρήσεις
1) Διοχέτευση πίνακα ως όρισμα σε συνάρτηση
2) Η Σταθερά NULL
Ασκήσεις
Рекомендации по теме
Комментарии
Автор

ξεκάθαρο παράδειγμα για τη χρησιμότητα των δεικτών! Συγχαρητήρια

nkspyrou
Автор

Στην ουσία (αν κατάλαβα καλά) η διεύθυνση των μεταβλητών χ1 και χ2 είναι και οι επιστρφόμενες στην printf() τιμές. Δηλ δεν αρχικοποιούνται πουθενά οι διευθύνσεις των *χ1 και *χ2 σε άλλες τιμές....

liontass
Автор

Καλησπερα, εκανα μια αλλαγη στον κωδικα και αφαιρεσα ολους τους pointers και εβαλα απλα ενα x1 και x2, ο κωδικας ειχε το ιδιο αποτελεσμα.Απλα δεν μπορω να κατανοησω τελικα την χρησιμοτητα των pointers και την πολυπλοκοτητα τους.
Υ.Γ. Δεν αμφιβαλλω για την χρησιμοτητα τους, απλα σιγουρα δεν εχω κατανοησει απολυτα τι εξυηρετουν .

pavlosppd
Автор

δασκαλε ενω εχω σχεδον ιδιο κωδικα, μου βγαζει για μιγαδικες ριζες αυτο:
Den exei pragmatikes rizes
Exei 2 rizes, thn kai thn
ενω εχω βαλει return 0;
τι παει λαθος; ευχαριστω πολυ δινω αυριο και με εχετε βοηθησει παρα πολυ!

kappakippo
Автор

κατι ασχετο με αυτο το βιντεο
πως μπορω να αρχικοποιησω εναν πινακα χωρις να χρησιμοποιησω τις αγκυλες [ ]
γιατι γραφω στην dev++
#define N 50 και μετα μεσα στην main : int *(arr+N) ;
και ο compiler δεν μου το τρεχει
αντι για int arr[N];
εχω μια εργασια στην σχολη με αυτον τον περιορισμο

petross
Автор

Δεν μπορω να καταλαβω πως δημιουργηθηκε η εξισωση αχ*2+βχ+γ=0

imadariusmain
Автор

δηλαδή όταν καλούμε τη συνάρτηση και γράφουμε
plithos=rizes(a, b, c, &riza1, &riza2);
και ύστερα στο σώμα γράφουμε
int rizes (float a, float b, float c, float *x1, float *x2)
είναι σαν να λέμε ότι &riza1=*x1 και &riza2=*x2
??

gryllias
Автор

δάσκαλε αν στη main αντι για riza1 kai riza 2 δηλώσω ως μεταβλητές x1 και x2, βλέπω ότι εξακολουθεί και τρέχει το πρόγραμμα. Είναι λάθος ή προτιμούμε τις μεταβλητές riza1 και riza2 για να μην μπλέξουμε τις μεταβλητές της mai και της συνάρτησης?

babistms
Автор

Αν το διαβασμα της εισοδου γινει ετσι :



printf("dwse to a, b kai to c\n");
scanf("%f", &a);
scanf("%f", &b);
scanf("%f", &c);


υπαρχει καποιο προβλημα;

sophienk
Автор

Κύριε Ψούνη, αν δεν χρησιμοποιούσαμε την συνάρτηση sqrt, και βάμε απλώς pow(D, 1/2), θα υπήρχε κάποιο πρόβλημα που θέλω να ρωτήσω είναι οτι στις περιπτώσεις που έχουμε ρίζες, τι απ τα 2 να χρησιμοποιώ ?

antonismourtzakis
Автор

Μία πολύ μικρή παρατήρηση, όλο το κομμάτι του κώδικα μέσα στη συνάρτηση ίσως θα έπρεπε να μπει μέσα σε μία if (a != 0) με ένα return -1 στο τέλος ώστε να μην έχουμε πρόβλημα με την περίπτωση που a = 0 (δεν το είδα αναλυτικά το βίντεο, δεν ξέρω αν αναφέρεται κάπου ότι θεωρούμε δεδομένο ότι δεν είναι).

ΜπάμπηςΚοντός-γρ
Автор

Δάσκαλε αποθηκεύσαμε την εξίσωση οταν την καλέσαμε στην μεταβλητή plithos, αυτό που με δυσκολεύει λίγο να καταλάβω είναι όταν γράψαμε τον if κώδικα που καταλάβαινε 0, 1, 2 αναλόγως, φαντάζομαι έχει να κάνει σχέση με τα return της συνάρτησης ρίζες, αυτό που προβληματίζει εδώ είναι οτι ουσιαστικά έχουμε αποθηκεύσει το αποτέλεσμα μίας ολόκληρης κλήσης συνάρτησης σε μια μεταβλητή int και σε αυτή υπάρχουν και τα αποτελέσματα απο το return της συνάρτησης;
Το έχω πιάσει σωστά ή λέω μπούρδες τώρα χαχαχαχα;

ZX-zwto
Автор

Δεν έχω λόγια να περιγραψω πόσο βοηθάνε οι σειρές των μαθημάτων σου. Μόνο αυτό θα σου πω. ( Βέβαια αν η διακρινουσα είναι αρνητική δεν έχει πραγματικές ρίζες αλλά έχει μιγαδικες)

Knowledge_of_programming ++;

manosmakris
Автор

Kurie Psouni emena den me kanei kan compile to programma mou


#include <stdio.h>
#include <math.h>


int main(void)

{
float a, b, c, x1, x2;

int p ;
printf ("\ndwse prwto suntelesti:");
scanf ("%f", &a);
printf ("\ndwse deutero suntelesti:");
scanf ("%f", &b);
printf ("\ndwse trito suntelesti:");
scanf ("%f", &c);
p=rizes( a, b, c, &x1, &x2);
if (p==2)
printf ("\nExoyme %d plhthos rizwn, me rizes:%0.2f, %0.2f", p, x1, x2);
else if (p==1)
printf ("\nExoume %d plhthos rizwn, me riza:%0.2f", p, x1);
else
printf ("\nDen exoyme kamia riza");

}


int rizes (float a, float b, float c, float *x1, float *x2)
{
float D=(b*b)-4(a*c);
if (D<0)
{
return 0;
}
if else (D==0)
{
*x1=-b/(2*a);
return 1;
}
else
{
*x1=(-b+sqrt(D))/(2*a);
*x2=(-b-sqrt(D))/(2*a);
return 2;
}
}

mitsislav