Daniele78, non so' progettare un impianto elettrico e non me ne intendo molto di PLC.
Avevo fatto l' AVL dei PLC Siemens a suo tempo a scuola ma per lavoro ho sempre fatto l'operaio generico in fabbrica, quindi l' unica esperienza che ho accumulato a livello hobbistico
riguarda i microcontrollori PIC programmati in c, poi mi diletto pure di programmazione c sia sotto
win che linux. Dici che la programmazione nel mondo dei PC per un elettronico sia un argomento
fuori del suo campo?
Volevo chiederti un' ultima cosa: alla mia eta' e' ancora possibile essere assunti in una ditta
come principiante o attraverso stage per imparare un mestiere nel mondo dell' elettronica, oppure
sono ormai vecchio per iniziare e quindi e' meglio che continui a fare i cosidetti "lavori umili" ma
non qualificati e che non ti insegnano niente?
P.S. Lavorando in fabbrica mi sono fatto l' idea di perdere il mio tempo.
Richiesta consiglio su linguaggi da studiare
Moderatori:
carloc,
g.schgor,
BrunoValente,
IsidoroKZ
16 messaggi
• Pagina 2 di 2 • 1, 2
0
voti
alien75 ha scritto:Dici che la programmazione nel mondo dei PC per un elettronico sia un argomento
fuori del suo campo?
Per niente! Qualsiasi cosa che tu impari ti può servire in molti campi. Il fatto di programmare con esempi di applicazioni GUI per l'uso "home" non vuol dire affatto che quello che tu stia facendo si limita a quello scopo. Quando studi C etc. e fai pratica su quel linguaggio (anche se poi si tratta di programmazione di sistema), l'importante è prenderne dimestichezza e familiarizzare con gli algoritmi. Nessuno ti chiede di essere un Donald Knuth, ma solo di provarci
Tieni anche a mente che la memoria che hai a disposizione su un micro non è la stessa del tuo HD, quindi devi mettere in pratica quello che avrai imparato sul libro, per farla breve, usare molto i puntatori e la loro aritmetica, e questo si impara su qualsiasi libro di C.
0
voti
Conosco il c in ambiente microc per i PIC ed uso c pure per scrivere programmi con le interfacce
grafiche mi diletto pure con le socket, anche se, per il momento con le socket, ho solo fatto un semplice port scanner, al momento sto facendo una rubrica telefonica con interfaccia testuale sotto win, ed in futuro una volta risolti i bug ti tale rubrica usero' quanto imparato per fare un
client IRC ed uno FTP.
Vorrei come ultima analisi un parere per quanto riguarda il prolog: nessuno mi puo' dire se serve
sapere pure questo ad un elettreonico (nessuno mi sa dire qualche cosa su questo misterioso ed affascinante linguaggio)?
Per il momento vorrei inviarvi in allegato il sorgente della rubrica.
Tutta la parte che permette l' esecuzione dei comandi ed il salvataggio delle voci in un array
di strutture interne funziona tranne il comando nuova "iniziale_voce" per via del suo if() che non
viene eseguito a causa di un puntatore alla prima lettera del buffer dell' iniziale inserito da riga.
La parte piu' rognosa che mi sta dando filo da torcere e' tutta la parte che fa uso di fseek() per
spostare il segnaposto nel file di salvataggio voci (e' la prima volta che uso fseek(), open(), close() write() read() su file etc quindi non ho molta esperienza e mi baso solo sulla teoria del libro).
Nessuno puo' dare un' occhiata alla funzione nuova() e carica() nella quale risiedono i problemi
menzionati?
grafiche mi diletto pure con le socket, anche se, per il momento con le socket, ho solo fatto un semplice port scanner, al momento sto facendo una rubrica telefonica con interfaccia testuale sotto win, ed in futuro una volta risolti i bug ti tale rubrica usero' quanto imparato per fare un
client IRC ed uno FTP.
Vorrei come ultima analisi un parere per quanto riguarda il prolog: nessuno mi puo' dire se serve
sapere pure questo ad un elettreonico (nessuno mi sa dire qualche cosa su questo misterioso ed affascinante linguaggio)?
Per il momento vorrei inviarvi in allegato il sorgente della rubrica.
Tutta la parte che permette l' esecuzione dei comandi ed il salvataggio delle voci in un array
di strutture interne funziona tranne il comando nuova "iniziale_voce" per via del suo if() che non
viene eseguito a causa di un puntatore alla prima lettera del buffer dell' iniziale inserito da riga.
La parte piu' rognosa che mi sta dando filo da torcere e' tutta la parte che fa uso di fseek() per
spostare il segnaposto nel file di salvataggio voci (e' la prima volta che uso fseek(), open(), close() write() read() su file etc quindi non ho molta esperienza e mi baso solo sulla teoria del libro).
Nessuno puo' dare un' occhiata alla funzione nuova() e carica() nella quale risiedono i problemi
menzionati?
0
voti
Per il Prolog non ti so dire, non l'ho mai usato
Per l'errore di programmazione, dirti "postalo" per poi non essere sicuro di aiutarti perché il tempo (almeno da parte mia) è quello che è, ti direi di usare il debugger, stabilire i breakpoint ed analizzare registri e valori. Solo così puoi capire.
Per l'errore di programmazione, dirti "postalo" per poi non essere sicuro di aiutarti perché il tempo (almeno da parte mia) è quello che è, ti direi di usare il debugger, stabilire i breakpoint ed analizzare registri e valori. Solo così puoi capire.
0
voti
Ecco il sorgente della mia rubrica:
Dimmi che te ne pare.
Poi volevo chiederti com'e' possibile farsi assumere (anche solo in prova) da una ditta nel campo della costruzione macchine industriali per poter imparare a fare i bordi macchina i cablaggi etc...? So' di gente che e' riuscita a trovare lavoro in questi tipi di ditte senza nemmeno avere il diploma di perito elettronico.
Mi puoi dare una panoramica su questo per favore?
Dici che il mercato sia saturo in tale campo oppure no?
- Codice: Seleziona tutto
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#include<errno.h>
#include <windows.h>*/
/*numero massmo di voci inseribili nella rubrica*/
#define MAXVOCI 4000
#define INIZIALI 4
/*numero massimo caratteri dei comandi*/
#define MAX 200
/*numero di iniziali di ricerca del comando 'lista '*/
#define N_INIZIALI 4
/*procedure di implementazione comandi*/
int modifica(char *posizione);
int cancella(char *posizione);
void nuovo(void);
void help(void);
void visualizza(void);
void vis_tutta_rubrica(void);
int ordina(void);
void stampa(int max_voci, struct rubrica *indirizzo);
void print(struct rubrica *indirizzo);
/*procedure di caricamento e salvataggio voci in file su disco*/
void carica(void);
void nuova_voce(void);
int salva_nuova(int voci, long voce);
void salva_cancella(struct rubrica *indirizzo, long posizione);
void salva_modifica(struct rubrica *indirizzo, long posizione);
int inserisci(void);
/*variabili globali*/
char temp2[23]="\\Rubrica.txt";
char temp3[400];
char nome_file[500];
char modoa[3]="a+";
char modow[3]="w+";
char modor[2]="r";
char ch, buffer[MAX+1], buffer1[201], Nome[200];
/*buffer per testare il tipo di lettera delle iniziali*/
char *lettera="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int x, stampa1=0, ord;
long offset=0, n_voce=0;
FILE *fp;
/*definizione struttura di memorizzazione nomi e numeri della rubrica*/
struct rubrica
{
char nome[200];
char telefono[40];
};
/*dichiarazione numero massimo voci della rubrica*/
struct rubrica vocerub[MAXVOCI];
/*dichiarazione numero massimo di voci su rubrica_stampa*/
struct rubrica vocestampa[MAXVOCI];
/*dichiarazione numero massimo di voci su rubrica_stampa*/
struct rubrica vocestampa1[MAXVOCI];
/*dichiarazione buffer per salvataggio momentaneo nome[]*/
struct rubrica vocex;
int main()
{
/*presentazione rubrica*/
printf("\n============================RUBRICA TELEFONICA=================================");
printf("\n\nDigitare 'help' per avere la lista dei comandi\n\n");
GetCurrentDirectory(200, temp3);
strcat(nome_file,temp3);
strcat(nome_file,temp2);
carica();
printf("\nn_voce=%ld",n_voce);
while(1)
{
/*inserimento buffer del comando*/
x=0;
printf("\n\n\n>");
while((ch=getchar())!='\n' && x<MAX) {buffer[x++]=ch;}
buffer[x]='\n';
/*copia buffer[] in buffer1[] per poi testare buffer1[] in modo da non alterare il contenuto di buffer[]*/
strcpy(buffer1,buffer);
/*scorri lungo il comando contenuto in buffer1[] finche trovi lo spazio*/
x=0;
do
{
x++;
}while(isgraph(buffer1[x])!=0);
buffer1[x+1]='\0'; /*aggiungi all'elemento sucessivo allo spazio il terminatore \0*/
/*testa il tipo di comando inserito*/
if(strcmp(buffer1,"lista ")==0) //confronta il comando contenuto in buffer1 (il comando dato da tastiera)
{ //con "lista "
if(isgraph(*buffer+(x+1))) visualizza(); //e se corrispondono e se dopo lo spazio c'e' uan lettera
//vai a visualizza() che consente di stampare le voci
//con le iniziali indicate dalla lettera dopo il comando
if(buffer[x+1]==0) printf("\nComando errato\n");
continue;
}
if(strcmp(buffer1,"lista\n")==0)
{
x=0;
do
{
x++;
}while(buffer1[x]!=0);
vis_tutta_rubrica();
continue;
}
if(strcmp(buffer1,"modifica ")==0)
{
switch(modifica(buffer+(x+1)))
{
case 1:
printf("\nVoce inesistente\n");
break;
case 2:
printf("\nVoce modificata\n");
break;
case 0:
printf("\nVoce inalterata\n");
break;
}
if(buffer[x+1]==0) printf("\nComando errato\n");
continue;
}
if(strcmp(buffer1,"cancella ")==0)
{
switch(cancella(buffer+(x+1)))
{
case 0:
printf("\nVoci cancellate\n");
break;
case 1:
printf("\nVoce inesistente\n");
break;
case 2:
printf("\nVoce cancellata\n");
break;
}
if(buffer[x+1]=='\0') printf("\nComando errato\n");
continue;
}
if(strcmp(buffer1,"nuova\n")==0)
{
nuovo();
continue;
}
if(strcmp(buffer1,"help\n")==0)
{
help();
continue;
}
if(strcmp(buffer1,"esci\n")==0) break;
if(strcmp(buffer1,"\0")==0) continue;
printf("\nComando errato\n");
}
return 0;
}
/*procedura per modificare i nomi ed i numeri della rubrica*/
int modifica(char *posizione)
{
int ritorno=0;
char p_nome[200];
char p_telefono[40];
long voce;
for(voce=1;voce<n_voce+1;voce++)
{
if(!(strcmp(posizione,vocerub[voce].nome)))
{
printf("\n\nInserire nuovo nome e cognome:");
gets(p_nome);
strcpy(vocex.nome,vocerub[voce].nome);
strcpy(vocex.telefono,vocerub[voce].telefono);
if(isgraph(p_nome[0]))
{
strcpy(vocerub[voce].nome,p_nome);
ritorno=2;
}
printf("Inserire nuovo numero di telefono:");
gets(p_telefono);
if(isgraph(p_telefono[0]))
{
strcpy(vocerub[voce].telefono,p_telefono);
ritorno=2;
}
printf("\n");
salva_modifica(&vocex,voce);
return ritorno;
}
}
return 1;
}
/*procedura per cancellare un numero dalla rubrica*/
int cancella(char *posizione)
{
char stringa[80]="rubrica";
//cancella la voce indicata dal puntatore a vocerub[] 'posizione'
if(!(strcmp(posizione,stringa)))
{
for(long voce=0;voce<n_voce+1;voce++)
{
//cancella le prime 4 lettere del nome contenuto in vocerub[]
for(int pos=0;pos<4;pos++)
vocerub[voce].nome[pos]='0';
salva_cancella(vocerub+voce,voce);
}
n_voce=0;
return 0;
}
else
{
for(long voce=0;voce<n_voce+1;voce++)
{
if(vocerub[voce].nome[0]==0) continue;
strncpy(vocex.nome,vocerub[voce].nome,200);
if(!(strncmp(posizione,vocerub[voce].nome,200)))
{
for(int pos=0;pos<4;pos++)
vocerub[voce].nome[pos]='0';
salva_cancella(&vocex,voce);
return 2;
}
}
}
return 1;
}
//procedura per inserire un nuovo numero
void nuovo(void)
{
int x=0, y, risultato;
long voce=0;
do{
y=0;
while(voce<n_voce)
{
//se trovi un buco vuoto nella struttura dati inserisci una nuova voce
if(vocerub[voce].nome[0]==0)
{
if(n_voce==0) n_voce++;
nuova_voce();
fp=fopen(nome_file,"a+"); //usare modalita 'a+' per salvataggio voci nuove
if(fp==NULL)
{
printf("\nErrore nell' apertura del file salvataggio rubrica\n");
fclose(fp);
return;
}
risultato=salva_nuova(0,voce);
if(risultato==2)
{
printf("\nErrore nell'apertura del file di salvataggio della rubrica: voce non salvata\n");
return;
}
else break;
y=1;
}
voce++; //aggiorna numero di voci scansionate
}
//se non c'e' nessuna voce cancellata nella struttura
//metti la voce alla fine di vocerub[]
//if(y==0){ //inserisci una nuova voce in questo punto solo se prima non
nuova_voce(); //e' mai stato trovato un buco vuoto nel file e nella strutttura
salva_nuova(n_voce,0);
n_voce++;
//}
if(n_voce>=MAXVOCI)
{
printf("\nImpossibile inserire una nuova voce: rubrica piena\n");
return;
}
fp=fopen(nome_file,"a+"); //usare modalita 'a+' per salvataggio voci nuove
if(fp==NULL)
{
printf("\nErrore nell' apertura del file salvataggio rubrica\n");
return;
}
if(salva_nuova(n_voce,0)==2)
{
printf("\nErrore nell'apertura del file di salvataggio della rubrica\n");
return;
}
x=inserisci(); //se e' stato inserito 1 allora ripeti ciclo inserimento senno esci
}while(x==1);
}
//procedura per visualizzare i comandi
void help(void)
{
printf("\n\n'lista' comando per dare la lista completa della rubrica");
printf("\n\n'lista abc..etc' aggiungendo la prima, la seconda o la terza ini");
printf("\n ziale si puo' specificare quale parte della rub ");
printf(" rica si vuole visualizzare");
printf("\n\n'modifica nome da modificare' comando per modificare il nome");
printf(" o il numero di una voce della rubrica.");
printf("\n\n'cancella nome da cancellare' comando per cancellare una voce");
printf("\n\n'nuova' comando per inserire una nuova voce");
printf("\n\n'esci' comando per uscire dal programma\n\n");
}
//procedura per la visualizzazione dell'elenco in base alle iniziali dei nomi cercati
void visualizza(void)
{
if(ordina()==0) //chiama procedura di ordinamento in ordine
{ //dalla prima alla quarta voce
printf("\nNessuna voce trovata con questa iniziale\n");
return;
}
stampa(-1,vocestampa1); //se il primo parametro e' uguale a -1 stampa solo le voci con le iniziali indicate dopo il comando 'lista'
return;
}
//procedura per salvare le voci cercate nell' ordine di ricerca richiesto, dentro il buffer di stampa
int ordina(void)
{
//cicli di trasferimento da struttura vocerub[] a struttura di vocestampa[]
int posto=-1, voce=0, x=1, y, z, pos=0, stp=0 ;
while(x!=5)
{
switch(x){
case 1:
{
for(y=0;y<27;y++) //cambia prima iniziale da testare
{
while(voce!=n_voce) //gira finche la lista di vocerub finisce
{
if(vocerub[voce].nome[0]==lettera[y] || vocerub[voce].nome[0]==lettera[y+26]) //copia solo le voci con la prima iniziale indicata
{
strcpy(vocestampa[stp].nome,vocerub[voce].nome);
strcpy(vocestampa[stp].telefono,vocerub[voce].telefono);
stp++;
}
voce++;
}
voce=0;
}
stp=0;
break;
}
case 2:
{
for(y=0;y<27;y++) //cambia prima iniziale da testare
{
for(z=0;z<27;z++) //cambia seconda iniziale da testare
{
while(voce!=n_voce) //gira finche la lista di vocerub finisce
{
if(vocestampa[voce].nome[0]==lettera[y] || vocestampa[voce].nome[0]==lettera[y+26]) //copia solo le voci con la prima iniziale indicata
{
if(vocestampa[voce].nome[1]==lettera[z] || vocestampa[stp].nome[1]==lettera[z+26]) //copia solo le voci con la seconda iniziale
{ //maiuscola e minuscola indicata
strcpy(vocestampa1[stp].nome,vocestampa[voce].nome);
strcpy(vocestampa1[stp].telefono,vocestampa[voce].telefono);
stp++;
}
}
voce++;
}
voce=0;
}
voce=0;
}
stp=0;
break;
}
case 3:
{
for(y=0;y<27;y++) //cambia prima iniziale da testare
{
for(z=0;z<27;z++) //cambia terza iniziale da testare
{
while(voce!=n_voce) //gira finche la lista di vocerub finisce
{
if(vocestampa1[voce].nome[0]==lettera[y] || vocestampa1[voce].nome[0]==lettera[y+26]) //copia solo le voci con la prima iniziale indicata
{
if(vocestampa1[voce].nome[2]==lettera[z] || vocestampa1[voce].nome[2]==lettera[z+26]) //copia solo le voci con la terza iniziale
{ //maiuscola e minuscola indicata
strcpy(vocestampa[stp].nome,vocestampa1[voce].nome);
strcpy(vocestampa[stp].telefono,vocestampa1[voce].telefono);
stp++;
}
}
voce++;
}
voce=0;
}
voce=0;
}
stp=0;
break;
}
case 4:
{
for(y=0;y<27;y++) //cambia prima iniziale da testare
{
for(z=0;z<27;z++) //cambia quarta iniziale da testare
{
while(voce!=n_voce) //gira finche la lista di vocerub finisce
{
if(vocestampa[voce].nome[0]==lettera[y] || vocestampa[voce].nome[0]==lettera[y+26]) //copia solo le voci con la prima iniziale indicata
{
if(vocestampa[voce].nome[3]==lettera[z] || vocestampa[voce].nome[3]==lettera[z+26]) //copia solo le voci con la quarta iniziale indicata
{ //maiuscola e minuscola indicata
strcpy(vocestampa1[stp].nome,vocestampa[voce].nome);
strcpy(vocestampa1[stp].telefono,vocestampa[voce].telefono);
stp++;
}
}
voce++;
}
voce=0;
}
voce=0;
}
stp=0;
break;
}
}
x++;
}
return n_voce;
}
//procedura per stampare le voci precedentemente salvate dentro al buffer di stampa
void stampa(int max_voci, struct rubrica *indirizzo)
{
int riga=0, y;
if(max_voci==n_voce)
{
while(riga<max_voci)
{
if((indirizzo+riga)->nome[0]!='0')
{
printf("\n\nNome:%s",(indirizzo+riga)->nome);
printf("\nTelefono:%s",(indirizzo+(riga))->telefono);
riga++;
}
}
printf("\n");
stampa1=0;
}
else if(max_voci==-1)
{
while(riga!=n_voce+1)
{
if((indirizzo+riga)->nome[0]==buffer[x+1]) //testa se c'e' la prima iniziale
{
if(*((buffer+(x+1))+1)=='\0'){ //se si, testa se ce ne sono altre
print((indirizzo+riga));
riga++;
continue;
}
if((indirizzo+riga)->nome[1]==*((buffer+(x+1))+1)) //testa se c'e' una seconda iniziale
{
if(*((buffer+(x+1))+2)=='\0'){ //se si, testa se ce ne sono altre
print((indirizzo+riga));
riga++;
continue;
}
if((indirizzo+riga)->nome[2]==*((buffer+(x+1))+2)) //testa se c'e' una terza iniziale
{
if(*((buffer+(x+1))+3)=='\0'){ //se si, testa se ce ne sono altre
print((indirizzo+riga));
riga++;
continue;
}
if((indirizzo+riga)->nome[3]==*((buffer+(x+1))+3)) //testa se c'e' una quarta iniziale
{
if(*((buffer+(x+1))+4)=='\0'){ //se dopo la quarta iniziale non ce ne sono altre stampa la voce
print((indirizzo+riga));
riga++;
continue;
}
}
}
}
}
riga++;
}
}
}
//procedura di visualizzazine della rubrica intera
void vis_tutta_rubrica(void)
{
if(!(ordina())) //chiama funzione per l' ordinammento alfabetico delle voci
{ //dalla prima alla 4^ iniziale
printf("\nNessuna voce esistente nella rubrica\n");
return;
}
stampa(n_voce,vocestampa1); //stampa il risultato dell' ordinamento
//il risultato viene messo in vocestampa1[]
}
//procedura di caricamento file nella struttura dati della rubrica
void carica(void)
{
char nome1[200];
char telefono1[40];
char nome;
long voce=0;
long val;
fp=fopen(nome_file,"r");
if(fp==NULL) {printf("\nFile delle voci inesistente"); return;}
do{
fgets(nome1,200,fp);
fgets(telefono1,40,fp);
//se il nome della voce caricata in nome1[] non e' una voce cancellata caricalo nella
//struttura assieme al n. di telefono
if(nome1[0]!='0')
{
strcpy(vocerub[voce].nome,nome1);
strcpy(vocerub[voce].telefono,telefono1);
++voce;
}
}while(!feof(fp)); //cicla finche finisce il file e quindi sono state caricate dal file alla struttura tutte le voci esistenti
//aggiorna la variabile di conteggio delle voci i nrubrica togliendo una voce
n_voce=--voce; //ho inserito questa riga perche notavo che la funzione carica() mi inseriva una voce in piu' in realta inesistente
fclose(fp);
}
//procedura di salvataggio file
int salva_nuova(int voci, long voce)
{
char type[2];
long one=0;
//se non c'e' nessuna voce nella struttura vocerub[] allora posiziona fseek() all'inizio del file
switch(voci)
{
case 0:
{
fseek(fp,(voce*sizeof(struct rubrica)),SEEK_SET);
fputs(vocerub[voce].nome,fp);
fputs("\n",fp);
fputs(vocerub[voce].telefono,fp);
fputs("\n",fp);
fclose(fp);
return 0;
}
}
//se ci sono gia' voci in vocerub[]
if(voci==n_voce)
{
long one=n_voce-1;
//posiziona il segnaposto alla fine del file
fseek(fp,(one*sizeof(struct rubrica)),SEEK_SET);
//e scrivi il nome ed il telefono della voce
fputs(vocerub[n_voce].nome,fp);
fputs("\n",fp); //vai a capo
fputs(vocerub[n_voce].telefono,fp);
fputs("\n",fp); //vai a capo
fclose(fp);
}
return 0;
}
//procedura per l'inserimento di nuove voci
void nuova_voce(void)
{
char digit1[50];
char digit2[49];
printf("\n\nInserire nome e cognome:");
scanf("%s%s", digit1, digit2);
strncpy(vocerub[n_voce].nome,digit1,50);
strncat(vocerub[n_voce].nome," ",1);
strncat(vocerub[n_voce].nome,digit2,49);
printf("Inserire numero telefonico:");
scanf("%s",vocerub[n_voce].telefono);
}
//procedura per la cancellazione di una voce dal file Rubrica.txt
void salva_cancella(struct rubrica *indirizzo, long posizione)
{
int x;
fp=fopen(nome_file,"a"); //apri il file in scrittura
//posizionati nel punto del file in cui c'e' la voce da cancellare
fseek(fp,(posizione*sizeof(struct rubrica)),SEEK_SET);
fgets(Nome,200,fp); //carica il nome nella var. Nome
if(!(strcmp(indirizzo->nome,Nome))) //copia Nome dentro a all' indirizzo corrispondente
{ //nella struttura vocerub[]
//cancella le prime 4 iniziali della voce nel file con uno '0'
for(x=0;x<4;x++)
{
indirizzo->nome[x]='0';
fputs(indirizzo->nome+x,fp);
}
fflush(fp);
fclose(fp);
return;
}
fclose(fp);
}
//procedura di richiesta inserimento nuova voce
int inserisci(void)
{
int x;
do{
printf("\n\nVuoi inserire un' altra voce? (1=si 0=no)");
scanf("%d",&x);
}while(x>1 || x<0);
return x;
}
//procedura per il savataggio modifica nome e telefono
void salva_modifica(struct rubrica *indirizzo, long posizione)
{
fp=fopen(nome_file,"a");
fseek(fp,(posizione*sizeof(struct rubrica)),SEEK_SET);
fgets(Nome,200,fp);
if(!(strcmp(indirizzo->nome,Nome))) //se il contenuto del buffer puntato da indirizzo e' uguale a Nome
{ //allora salva la modifica effettuata nella struttura sul disco
fputs(vocerub[posizione].nome,fp);
fputs("0\n",fp);
fputs(vocerub[posizione].telefono,fp);
fputs("0\n",fp);
fflush(fp);
fclose(fp);
return;
}
}
//procedura per stampare le voci selezionate
void print(struct rubrica *indirizzo)
{
printf("\n\nNome:%s",indirizzo->nome);
printf("Telefono:%s",(indirizzo+1)->telefono);
}
Dimmi che te ne pare.
Poi volevo chiederti com'e' possibile farsi assumere (anche solo in prova) da una ditta nel campo della costruzione macchine industriali per poter imparare a fare i bordi macchina i cablaggi etc...? So' di gente che e' riuscita a trovare lavoro in questi tipi di ditte senza nemmeno avere il diploma di perito elettronico.
Mi puoi dare una panoramica su questo per favore?
Dici che il mercato sia saturo in tale campo oppure no?
0
voti
alien75 ha scritto:Daniele78, non so' progettare un impianto elettrico e non me ne intendo molto di PLC.
Avevo fatto l' AVL dei PLC Siemens a suo tempo a scuola ma per lavoro ho sempre fatto l'operaio generico in fabbrica, quindi l' unica esperienza che ho accumulato a livello hobbistico
riguarda i microcontrollori PIC programmati in c, poi mi diletto pure di programmazione c sia sotto
win che linux. Dici che la programmazione nel mondo dei PC per un elettronico sia un argomento
fuori del suo campo?
Volevo chiederti un' ultima cosa: alla mia eta' e' ancora possibile essere assunti in una ditta
come principiante o attraverso stage per imparare un mestiere nel mondo dell' elettronica, oppure
sono ormai vecchio per iniziare e quindi e' meglio che continui a fare i cosidetti "lavori umili" ma
non qualificati e che non ti insegnano niente?
P.S. Lavorando in fabbrica mi sono fatto l' idea di perdere il mio tempo.
La programmazione nel mondo del PC per un elettronico non è per niente fuori luogo. Anzi molte aziende oggi sviluppano software. Fare uno stage in azienda è certamente un' esperienza utile. Lo stage ti mette di fronte a dei lavori che non hai mai fatto e quindi sei costretto ad imparare. Inoltre a datore di lavoro potrebbe piacere come lavori ed assumerti.
Lavorare in fabbrica secondo me se si guadagna non è perdere il proprio tempo. Forse non da le giuste soddisfazioni. A me piace parecchio realizzare siti web. Il problema è che c'è tanto lavoro dietro e la gente vuole spendere pochissimo!
16 messaggi
• Pagina 2 di 2 • 1, 2
Chi c’è in linea
Visitano il forum: Nessuno e 116 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



