Langage C

Langage C - C - Programmation

Marsh Posté le 03-06-2005 à 08:53:47    

bijour a tous
 
jpasse une epreuve de tp au bac lundi prochain, et il faut connaitre le langage C.
apres avoir fait des recherches, et relu mon cours moulte fois, je n'y comprend toujours rien.
ca serait possible que vous m expliquiez de maniere tres simple les bases du langage C?
 
merci bin d avance


Message édité par audirs61 le 03-06-2005 à 08:55:18
Reply

Marsh Posté le 03-06-2005 à 08:53:47   

Reply

Marsh Posté le 03-06-2005 à 09:30:10    

audirs61 a écrit :


ca serait possible que vous m expliquiez de maniere tres simple les bases du langage C?


 
segmentation fault - coredump [:spamafote]


Message édité par elianor le 03-06-2005 à 09:30:18

---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 03-06-2005 à 09:32:48    

audirs61 a écrit :


apres avoir fait des recherches, et relu mon cours moulte fois, je n'y comprend toujours rien.


Va falloir faire un effort quand même [:mlc]


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 03-06-2005 à 09:47:06    

Qu'appelles-tu les "bases" d'un langage? [:heink]

Reply

Marsh Posté le 03-06-2005 à 09:49:20    

un peu de lecture accessible: http://c.developpez.com/faq/c/


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 03-06-2005 à 10:01:22    

Voici un lien sur un site d'un forumeur, lien très complet pour le C :  http://mapage.noos.fr/emdel
 
Tu peux dire merci à Emmanuel.

Reply

Marsh Posté le 03-06-2005 à 10:10:42    

c'est le dernier moment pour s'y mettre... :D


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 03-06-2005 à 11:02:30    

elianor a écrit :

segmentation fault - coredump [:spamafote]


 
LE message qu'on a tous vu apparaitres quelques foi s :D


---------------
.
Reply

Marsh Posté le 03-06-2005 à 12:06:43    

audirs61 a écrit :

jpasse une epreuve de tp au bac lundi prochain, et il faut connaitre le langage C.
apres avoir fait des recherches, et relu mon cours moulte fois, je n'y comprend toujours rien.
ca serait possible que vous m expliquiez de maniere tres simple les bases du langage C?


Mission impossible. Il faut 3 à 6 mois pour maitriser le C.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 03-06-2005 à 12:10:52    

Emmanuel Delahaye a écrit :

Mission impossible. Il faut 3 à 6 mois pour maitriser le C.


Tiens, c'est marrant, il y a manifestement des profs qui considèrent qu'une vingtaine d'heures suffisent [:joce]

Reply

Marsh Posté le 03-06-2005 à 12:10:52   

Reply

Marsh Posté le 03-06-2005 à 12:17:31    

Emmanuel Delahaye a écrit :

Mission impossible. Il faut 3 à 6 mois pour maitriser le C.


 
heuh en partant d'environ 0, je dirais bcp plus, ou alors 6 mois avec des doses de cheval. Et encore, faut s'etre pris les pieds dans pas mal de piege a la con du C (d'une part) et du C sur son OS (d'autre part) pour avancer sans trop se bloquer.

Reply

Marsh Posté le 03-06-2005 à 12:30:33    

Moktar1er a écrit :

Tiens, c'est marrant, il y a manifestement des profs qui considèrent qu'une vingtaine d'heures suffisent [:joce]


 
Pour maitriser la syntaxe et connaitre la signification des opérateurs, oui. Mais seule l'expérience apporte la maitrise de l'arithmétique de pointeurs et une façon de programmer raisonnable.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 03-06-2005 à 12:47:35    

faisant des études d'informatique, faut facilement 6 - 12 mois pour métriser les bases du C correctement! veux dire par la (boucle, alternative, tableau, fichier, allocation dynamique, etc...)
en quelque jour c'est impossible a moins d'avoir une logique implacable et d'avoir fait d'autre language avant c'est impossible ...

Reply

Marsh Posté le 03-06-2005 à 13:12:36    

C'est ici qu'on apprnds le c en 3 jours? [:dawa]


---------------
I'm failing as fast as I can !! -- Vision-360, vos photos en grand format -- !! -- Les nouilles c'est bon
Reply

Marsh Posté le 03-06-2005 à 13:13:57    

bah wé on a qu'a commencer:
 
hop programmation de l'exclusion mutuelle avec les sémaphores [:dawa]


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 03-06-2005 à 13:18:27    

Je comprends la différence entre un tableau de pointeur et un pointeur de tableau ? [:dawa]


---------------
I'm failing as fast as I can !! -- Vision-360, vos photos en grand format -- !! -- Les nouilles c'est bon
Reply

Marsh Posté le 03-06-2005 à 13:22:17    

boulax a écrit :


hop programmation de l'exclusion mutuelle avec les sémaphores [:dawa]


 
_o/ _o\ \o_


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 03-06-2005 à 13:44:52    

moi chui dans le mm cas mais on demande pas des programmes super evolués hein ! nous on arrive pas mais ya pas grand chose a savoir, char peek poke delay etc... mais nous ce qu'on arrive pas c a écrire les programmes genre on sait pas mettre tel bit a 0 ou a 1 , des truc comme ca

Reply

Marsh Posté le 03-06-2005 à 13:47:16    


 
CPC 464 en faursse !!!!


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
Reply

Marsh Posté le 03-06-2005 à 13:49:57    

elianor a écrit :

CPC 464 en faursse !!!!


 
+1
Le mien fonctionne toujours c'est trop bien  :sol:

Reply

Marsh Posté le 03-06-2005 à 23:00:15    

tout d'abord, merci pour vos liens.
je vous montre un bou de programme:
 
#include std11.h
#define PORTC 0x1003
#define PORTB 0x1004
#define DDRC 0x1007
void CONFIG()
{
   poke(DDRC, 0x00)  // là est mon problème: je configure le port c en entrées, mais je comprend pas pourquoi on ne met pas poke(PORTC, 0x00).
 
 
 
 
et si je veux donner la valeur $16  au portc par exemple, je met: poke(PORTC, 0x16)
     ou poke(DDRC, 0x16)
 
et pis le portc est special? le portb pose pas ce genre de problème, je comprend pas
 
merci d'avance

Reply

Marsh Posté le 04-06-2005 à 10:32:51    

audirs61 a écrit :


#include std11.h
#define PORTC 0x1003
#define PORTB 0x1004
#define DDRC 0x1007
void CONFIG()
{
   poke(DDRC, 0x00)  // là est mon problème: je configure le port c en entrées, mais je comprend pas pourquoi on ne met pas poke(PORTC, 0x00).




Rien de standard ici... Tu parles de quel plateforme ?  
 
(Admettons que ce soit Motorola 68HC11 que je découvre)
 
<RIEN A VOIR AVEC LE LANGAGE C!>
Le port C est contrôlé par 2 registres:
 
portc ($1003) : donnée
ddrc ($1007) : direction (1=output)
 
Si tu programmes les 8 bits du port C en entrée  

(ddrc) := 0


il n'y a rien à écrire dans portc (Sauf demande expresse exprimée par la doc du composant, ça n'aurait aucun sens). Il suffit maintenant de le lire pour récupérer des informations externes.  

data := (portc)


</>
 
NOTA : Suis-je le seul à avoir des problèmes de connexion avec les serveurs US depuis cette nuit ? Je suis en France.
Ca y'est, ça remarche... Encore un coup des chinois du FBI...


Message édité par Emmanuel Delahaye le 04-06-2005 à 11:51:38

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 04-06-2005 à 14:35:32    

Bizarre, nous on doit simplement connaître le basic et comprendre quelques instructions d'assembleur pour le bac ( pour le 68HC11)
 
j'ai fait ca en C mais je suis pas sûr que ce soit juste. C'était pour faire bouger une parabole.
 

Code :
  1. #include <hc11.h>
  2. //#define PORTA *(unsigned char volatile *)(0x1000)
  3. //#define DDRA  *(unsigned char volatile *)(0x1001)
  4. void wait100(void); //prototype de la fonction
  5. unsigned char i;
  6. void main(void)
  7. {
  8. asm( "CLI" );
  9. DDRA |= 0x30;
  10. // ORAA  #%00110000"
  11. // STAA  DDRA" );
  12. while( 1 )
  13. {
  14.  PORTA = 0x20;
  15.  for( i=0 ; i<30 ; i++ )
  16.   { wait100(); }
  17.  PORTA = 0x30;
  18.  for( i=0 ; i<20 ; i++ )
  19.   { wait100(); }
  20.  PORTA = 0x10;
  21.  for( i=0 ; i<30 ; i++ )
  22.   { wait100(); }
  23.  PORTA = 0x30;
  24. }
  25. }
  26. void wait100(void)
  27. {
  28. asm(
  29.   "LDAB #255 "
  30.  "loop2: LDAA #235 "
  31.  "loop1: DECA "
  32.   "BNE loop1 "
  33.   "DECB "
  34.   "BNE loop2 "
  35. );
  36. }


Message édité par ritzle le 06-06-2005 à 10:33:11
Reply

Marsh Posté le 04-06-2005 à 19:48:21    

c bizar, c tres different de ce que nous avons appris. jsuis incapable de te dire si c'est juste.

Reply

Marsh Posté le 04-06-2005 à 19:55:36    

boulax a écrit :

bah wé on a qu'a commencer:
 
hop programmation de l'exclusion mutuelle avec les sémaphores [:dawa]


 
Trop simple ... un ptit coup de P(mutex) par ci et un ptit coup de V(mutex) par la.


---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 04-06-2005 à 20:02:27    

Attention tout de même !  
Les mutex (pthread_mutex_lock, unlock) ne fonctionnent pas par défaut commes les primitives P et V de Dijsktra.  
Les mutex peuvent être dans l'état bloqué ou non. P et V agissent sur un sémaphore en incrémentant ou décrémentant sa valeur.

Reply

Marsh Posté le 04-06-2005 à 20:10:54    

fafounet a écrit :

Attention tout de même !  
Les mutex (pthread_mutex_lock, unlock) ne fonctionnent pas par défaut commes les primitives P et V de Dijsktra.  
Les mutex peuvent être dans l'état bloqué ou non. P et V agissent sur un sémaphore en incrémentant ou décrémentant sa valeur.


 
Je pense tout de meme qu'on peut utiliser les mutex des IPC System V avec des pthread ... et donc faire des vrais P et V dans des fonction threadés.


Message édité par Chronoklazm le 04-06-2005 à 20:27:29

---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 05-06-2005 à 09:39:02    

Pour faire des vrais P et V c'est les semaphores (effecitvement des systèmes IPC sys V)  -> man semaphore.h

Reply

Marsh Posté le 06-06-2005 à 10:42:34    

audirs61 a écrit :

c bizar, c tres different de ce que nous avons appris. jsuis incapable de te dire si c'est juste.


 
la fonction asm "CLI" sert juste pour l'émulateur.
 
ensuite on fait un "ou logique" de %00110000(0x30) avec DDRA qu'on enregistre dans DDRA pour mettre uniquement les bits 5 et 6 à "1", et on laisse les autres. C'est pour configurer les ports  du DDR en sorties.
 
ensuite on met %00100000 (0x20) dans PORTA pour faire tourner la parabole vers l'est (bit 5 à "0" et bit 6 à "1" )
grâce à la boucle for on attend 3 secondes
 
ensuite on arrête la parabole (PORTA = 0x30)(bits 5 et 6 à "1" )
on la fait tourner vers l'Ouest(bit 5 à "1" et bit 6 à "0" )
et on l'arrête
 
et on recommence ca à l'infini jusqu'à l'arrêt du système


Message édité par ritzle le 06-06-2005 à 10:43:08
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed