IlPuntoTecnico
Hardware e Software => Programmazione => Topic aperto da: ipocrisia - 29 Aprile 2011, 21:43
-
conversioni ott1.cpp
#include<stdio.h> //Libreria standard di I/O
#include<stdlib.h> //Libreria standard per alcune funzioni
#include<string.h> //Libreria per la gestione delle stringhe
#include "conversioni.h"
int s=0;
char scelta;
main(){
do{system("cls");
printf("Scegli l'operazione:\na)Svolgi una conversione\nb)Info\n\nScelta: ");
scanf("%s",&scelta);
if (scelta=='a'){system("cls");
printf("Basi:\n1)Decimale\n2)Binario\n3)Ottale\n4)Esadecimale\n\nScelta: ");
scanf("%d",&s);
switch (s){
case 1:
decimale();
break;
case 2:
binario();
break;
case 3:
ottale();
break;
case 4:
esadecimale();
break;
}
printf("\n\nVuoi effettuare un'altra conversione? (s/n): ");
scanf("%s",&esc);}
if (scelta=='b'){system("cls");
printf("Il programma sviluppato permette di convertire un numero di \nuna qualsiasi base in una qualsiasi base tra decimale, binario, ottale, \nesadecimale.\nIl programma %c stato sviluppato dagli alunni della \n3%cH Ferraioli Marco e Battimelli Nicola.",130,167);
printf("\n\nRitornare al men%c? (s/n)",163);
scanf("%s",&esc);}
}while(esc=='s');
return 0;
}
conversioni.h
#include<stdio.h> //Libreria standard di I/O
#include<stdlib.h> //Libreria standard per alcune funzioni
#include<string.h> //Libreria per la gestione delle stringhe
#define MAX 100
int i=0,nu=0,nb[MAX],no[MAX],s2=0,n=0,B[MAX],conta=0,nd=0,k=0,bin[MAX],a=0,j=0,O[MAX],d=0,E1[MAX];
char ne,E[MAX],esc;
int potenza(int x,int k){
int conta=0,xe=1;
while(conta<k){xe=xe*x;
conta++;}
return(xe);
}
void universale_2(){
k=0;
nd=0;
for(i=conta-1;i>=0;i--){n=potenza(8,k);
nd=nd+(O*n);
k++;}
return;
}
void universale(){
k=0;
nd=0;
for(i=conta-1;i>=0;i--){n=potenza(2,k);
nd=nd+(B*n);
k++;}
return;
}
void decimale(){
printf("\n\nDammi Il Numero In Base Decimale Che Vuoi Convertire: ");
scanf("%d",&nu);
printf("\n\nBase Di Conversione:\n1)Binario\n2)Ottale\n3)Esadecimale\n\nScelta: ");
scanf("%d",&s2);
switch (s2){
case 1:
i=0;
do{ nb=(nu%2);
nu=nu/2;
i++;}while(nu>=1);
i--;
printf("\n\nBinario: ");
while(i>=0){printf("%d",nb);
i--;}
break;
case 2:
printf("\n\nOttale: ");
i=0;
do{ nb=(nu%8);
nu=nu/8;
i++;}while(nu>=1);
i--;
while(i>=0){printf("%d",nb);
i--;}
break;
case 3:
printf("\n\nEsadecimale: ");
do{
nb=(nu%16);
nu=nu/16;
i++;
}
while(nu>=1);
i--;
while(i>=0){
if(nb>=10)
printf("%c",nb+ 'A'-10);
else
printf("%c",nb+'0');
i--;}
break;
}
}
void binario(){
for(i=0;i<100;i++)
B=0;
conta=0;
for(i=0;n!=2;i++){printf("\n\nDammi Il Numero In Base Binaria Che Vuoi Convertire una cifra binaria alla volta (2 per terminare): ");
scanf("%d",&n);
if(n<2){B=n;
conta++;}
else{if(n!=2)
printf("\nCifra non presente nel sistema di numerazione binario");
i--;}}
n=0;
printf("\n\nBase Di Conversione:\n1)Decimale\n2)Ottale\n3)Esadecimale\n\nScelta: ");
scanf("%d",&s2);
switch (s2){
case 1:
universale();
printf("\n\nDecimale: %d",nd);
break;
case 2:
universale();
i=0;
do{ nb=(nd%8);
nd=nd/8;
i++;}while(nd>=1);
i--;
printf("\n\nOttale: ");
while(i>=0){printf("%d",nb);
i--;}
break;
case 3:
universale();
i=0;
do{ nb=(nd%16);
nd=nd/16;
i++;}while(nd>=1);
i--;
printf("\n\nEsadecimale: ");
while(i>=0){
if(nb>=10)
printf("%c",nb+ 'A'-10);
else
printf("%c",nb+'0');
i--;}
break;
}
}
void ottale (){
for(i=0;i<100;i++)
O=0;
conta=0;
n=0;
for(i=0;n!=8;i++){printf("\n\nDammi Il Numero In Base Ottale Che Vuoi Convertire una cifra Ottale alla volta (8 per terminare): ");
scanf("%d",&n);
if(n<8){O=n;
conta++;}
else{if(n!=8)
printf("\nCifra non presente nel sistema di numerazione ottale");
i--;}}
printf("\n\nBase Di Conversione:\n1)Decimale\n2)Binario\n3)Esadecimale\n\nScelta: ");
scanf("%d",&s2);
switch (s2){
case 1:
universale_2();
printf("\n\nDecimale: %d",nd);
break;
case 2:
universale_2();
i=0;
do{ nb=(nd%2);
nd=nd/2;
i++;}while(nd>=1);
i--;
printf("\n\nBinario: ");
while(i>=0){printf("%d",nb);
i--;}
break;
case 3:
universale_2();
i=0;
do{ nb=(nd%16);
nd=nd/16;
i++;}while(nd>=1);
i--;
printf("\n\nEsadecimale: ");
while(i>=0){
if(nb>=10)
printf("%c",nb+ 'A'-10);
else
printf("%c",nb+'0');
i--;}
break;
}
}
void esadecimale(){
printf("\n\nBase Di Conversione:\n1)Decimale\n2)Binario\n3)Ottale\n\nScelta: ");
scanf("%d",&s2);
switch(s2){
case 1:
printf("\n\nDammi Il Numero In Base Esadecimale Che Vuoi Convertire: ");
scanf("%X",&nu);
printf("\n\nDecimale: %d",nu);
break;
case 2:
conta=0;
for(i=0;ne!='*';i++){printf("\n\nDammi Il Numero In Base Esadecimale Che Vuoi Convertire una cifra alla volta (* per terminare): ");
scanf("%s",&ne);
E=ne;
conta++;}
printf("\n\nBinario: ");
for(i=0;i<conta;i++){
switch(E){
case '0':
printf("0000");
break;
case '1':
printf("0001");
break;
case '2':
printf("0010");
break;
case '3':
printf("0011");
break;
case '4':
printf("0100");
break;
case '5':
printf("0101");
break;
case '6':
printf("0110");
break;
case '7':
printf("0111");
break;
case '8':
printf("1000");
break;
case '9':
printf("1001");
break;
case 'a':
printf("1010");
break;
case 'b':
printf("1011");
break;
case 'c':
printf("1100");
break;
case 'd':
printf("1101");
break;
case 'e':
printf("1110");
break;
case 'f':
printf("1111");
break;
case 'A':
printf("1010");
break;
case 'B':
printf("1011");
break;
case 'C':
printf("1100");
break;
case 'D':
printf("1101");
break;
case 'E':
printf("1110");
break;
case 'F':
printf("1111");
break;
}
}
break;
case 3:
printf("\n\nDammi Il Numero In Base Esadecimale Che Vuoi Convertire: ");
scanf("%X",&nu);
printf("\n\nOttale: %o",nu);
break;
}
}
Che ne pensate e un programma che ho fatto l'anno scorso per la scuola qua i link ai sorgenti
conversioni ott1.cpp: http://www.itimarconinocera.org/sito/menu/progetti/PNL%20-%20IFS/ccp%20exe/New%20Folder/conversioni%20ott1.cpp
conversioni.h: http://www.itimarconinocera.org/sito/menu/progetti/PNL%20-%20IFS/ccp%20exe/New%20Folder/conversioni.h
link alla spiegazione con incluso link alla presentazione
http://www.itimarconinocera.org/sito/menu/progetti/PNL%20-%20IFS/sistema_di_numerazione.html
P.S: Sono Ferraioli Marco XD
-
ma sei informatico o elettronico? o.o
-
indirizzo informatica ma faccio anche elettronica a scuola
-
un po si vede dal programma che hai fatto hihi... vbb per quello ke vi viene insegnato di elettronica u_u tra un po sa piu elettronica un bambino che gli informatici :P
-
un po si vede dal programma che hai fatto hihi... vbb per quello ke vi viene insegnato di elettronica u_u tra un po sa piu elettronica un bambino che gli informatici :P
no dai almeno io che sono anche autodidatta in questo campo xD almeno riesco a costruire un timer a confronto ai miei amici se poi mi volessi basare su quello che mi insegnano a scuola saprei come si misura tensione corrente cosa e una resitenza condensatore diodi transistor fare un partitore di tensione e poi per il digitale le porte and or not e saper costruire una xor nand xnor usado le prime tre cosa e un flip flop set reset e basta cmq da autodidatta su questi libri ho imparato molto
(http://img860.imageshack.us/img860/2047/dscf1177.jpg)
(http://img848.imageshack.us/img848/6007/dscf1178f.jpg)
Qualche altro libro da consigliarmi???
-
secondome se prendi questo manuale ti basta avanza per tt le cose che voui fare a livello amatoriale... nel manuale raccoglie piu materie: matematica, fisica, elettronica, elettrotecnica etc etc. ed è l'unico libro che si puo portare all'esame di stato :D da cui puoi copiare tutto :D
se vuoi quando arrivo a casa ti faccio vedere anche i miei libri di testo della scuola :)
(http://www.annuncieventi.it/adpics/4bd4a487285e6-Manuale_di_Elettronica_e_Telecomunicazioni_HOEPLI_.jpg)
-
secondome se prendi questo manuale ti basta avanza per tt le cose che voui fare a livello amatoriale... nel manuale raccoglie piu materie: matematica, fisica, elettronica, elettrotecnica etc etc. ed è l'unico libro che si puo portare all'esame di stato :D da cui puoi copiare tutto :D
se vuoi quando arrivo a casa ti faccio vedere anche i miei libri di testo della scuola :)
(http://www.annuncieventi.it/adpics/4bd4a487285e6-Manuale_di_Elettronica_e_Telecomunicazioni_HOEPLI_.jpg)
ok fammeli vedere
devo vedere in quale libreria lo posso trovare xD http://www.manualihoepli.it/index.php?sezione=manuali&tipo=scheda&id=8
-
conviene con lo compri sul sito della hoepli che ho visto sta mattina ce lo sconto e te lo fanno pagare 58 euro
http://www.hoepli.it/libro/manuale-di-elettronica-e-telecomunicazioni/9788820334901.asp
visto che supera i 19 euro te fanno anche la spedizione gratuita
-
conviene con lo compri sul sito della hoepli che ho visto sta mattina ce lo sconto e te lo fanno pagare 58 euro
http://www.hoepli.it/libro/manuale-di-elettronica-e-telecomunicazioni/9788820334901.asp
visto che supera i 19 euro te fanno anche la spedizione gratuita
grazie per l'info
cmq tu che scuola hai fatto di dove sei??
-
figurati
indirizzo elettrronico e telecomunicazioni
liguria :D
-
figurati
indirizzo elettrronico e telecomunicazioni
liguria :D
ma ora ti stai laureandoo lavori(cosa fai???)???
-
lavoro curiosone :D
-
lavoro curiosone :D
xP
-
ma tu hai solo 17 anni come scritto nel tuo profilo? u_u
-
Io mi son trovato bene con questo http://www.pangloss.it/libro.php?isbn=8879593285&id=12087 (usato ad elettronica all'uni)
Poi ho anche imparare l'elettronica di nuova elettronica in formato digitale :)
Comunque ragazzi, posso dirvi per "esperienza" che non importa da che manuale siete partiti, l'importante e' avere voglia di imparare e un minimo di buon senso (del tipo pensare prima di agire e garantire la sicurezza almeno alle persone se non ai componenti).
@ipocrisia
E' buona norma non inserire il codice delle funzioni negli .h, ma solo i prototipi :)
-
Comunque ragazzi, posso dirvi per "esperienza" che non importa da che manuale siete partiti, l'importante e' avere voglia di imparare e un minimo di buon senso (del tipo pensare prima di agire e garantire la sicurezza almeno alle persone se non ai componenti).
quando mi capita di alimentare integrati all'incontrario, mamma che botto mi fa :D
la volta piu bella era quando mi era scivolata alimentatore della ps2 sulla skeda madre della ps2 :S ho sentito una specie di triktrak :D
-
@ipocrisia
E' buona norma non inserire il codice delle funzioni negli .h, ma solo i prototipi :)
si per essere il primo anno di programmazione ed i prof assai che spiegano ed il modo in cui spiegano questo era quello che riuscivo a fare da autodidatta