ho finito gli esami,
now sono dottoressa in chimica, ricercatrice chimica molecolare, insegnante di matematica generale.
le mie tesi:
chimica e le allergie dei bimbi,
molecole e strutture chimiche con possibilita' di avere una memoria di posizione e/o origine,
matematica generale: insegnamento ai bimbi autistici and sub_normal.
le tesi sarebbero in inglese e ho tradotto non in modo letterale i titoli.
una importante notizia, mi hanno mandato mail i miei vecchi e stimati prof., oltre i complimenti ho apprezzato moltissimo le loro osservazioni e impressioni, sono felice,
un grazie a tutti, dai miei prof. dalle medie al liceco classico e universita' torino, zurigo, chicago.
un grazie speciale ad un prof. che si è un maschilista, ma mi ha fatto capire, spiegato e sopratutto mi ha insegnato un mondo che non conoscevo, e cosa moltissimo importante mi ha insegnato il linguaggio dei sordomuti.
Non dimentico le prof. che mi hanno consigliato, spronato, capito e sopratutto sopportato.
Come la mia famiglia che mi ha spronato, sopportato, capito e non ultimo erano sempre presenti, grazie mamma, babbo, nonne e nonni, zie e zii, cugini e nipoti, grazie, vi amo.
un grazie ai forum/blog di chimica, matematica, programmazione, disegno, musica, Linux.
un grazie speciale a tutti nel forum di Linux Mint Italia, che mi hanno fatto capire il PC, Linux, e non ultimo insegnato ad esprimermi in italiano, grazie di cuore a tutti, vi voglio bene.
Erika, (per gli amici EritechnoGirl)
Visit
Showing posts with label Programmazione. Show all posts
Showing posts with label Programmazione. Show all posts
15 November 2011
23 August 2011
my test for lesson16, C language, Italy comment
my solution
main.c
/* programma test reverse string */
/* non funziona con la localizzasione Italiana, è viene scritto con ??,
* la soluzione la so, ma i soliti sapientoni dei forum\blog di programmazione,
* fanno solo polemiche, nhe'
*
*/
/* Esercizio 16, creare applicativo in terminale
* scrivere le seguenti funzioni:
* da una stringa, passare la stringa alla rovescio, usare malloc e free
* scrivere una stringa da terminale e dare numero caratteri
* togliere il carattere \n dalla stringa
* leggere il path corrente
* leggere i file della directory corrente, non in ordine
* avere come minimo due file *.h e relativi *.c, avere un file main.c, avere un makefile
* dal makefile avere la possibilità di generare un file *.tar.gz e cancellare i file *.o e l'eseguibile
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include "scrivoleggo.h"
#include "reverse.h"
int main (int, char **);
int main (int argc, char **argv)
{
int x = 0;
char a_uno[] = "int main (int argc, char **argv)";
char line[MAX_LINEA];
char miapath[PATH_MAX + 1];
printf ("%s\n", a_uno);
rovescio (a_uno, strlen (a_uno));
printf ("%s\n", a_uno);
strcpy (miapath, leggopath ());
printf ("il mio path %s\n", miapath);
rovescio (miapath, strlen (miapath));
printf ("in reverse: %s\n\n", miapath);
/* per fermare l'immissione dare ctrl C o ctrl D in Linux\freeBSD */
while (getlinea (line, sizeof line) > 1)
{
discardnewline (line);
rovescio (line, strlen (line));
printf("%s\n", line);
}
printf ("\n");
x = leggodirectori ((leggopath ()), 0);
return (0);
}
--------------------------------------------------------------------
reverse.c
/* prova reverse string, funzioni varie */
#include
#include
#include
#include
#include "reverse.h"
char *rovescio (char *s, const int lung)
{
int l = lung,
x = 0;
char *p_dummy; /* puntatore a caratteri per rovesciare la stringa */
/* verifico se vi è abbastanza memoria da allocare */
if(!(p_dummy = malloc (l * sizeof (*p_dummy))))
{
fprintf (stderr,"memoria non allocata"); /* stampo un mess. in stderr su video */
exit (EXIT_FAILURE); /* Esco se ho memoria insufficiente. */
}
--l; /* diminuisco il valore per l'indice, in C partono da zero */
for (x = 0; x < lung; x++) { p_dummy[l] = s[x]; --l; } p_dummy[lung] = '\0'; /* aggiungo la fine stringa */ strcpy (s, p_dummy); /* copio la stringa invertita */ free (p_dummy); /* libero memoria allocata */ return (s); } void discardnewline (char *s) { int i; for(i = 0; s[i] != '\0'; i++) { if(s[i] == '\n') s[i] = '\0'; } } reverse.h /* reverse. prova string, header */ #ifndef REVERSE_H #define REVERSE_H #define MAX_LINEA 1024 /* * rovescio, per invertire una stringa o frase * * input: stringa da invertire, lunghezza stringa da invertire * output: stringa invertita * */ char *rovescio (char *, const int ); /* * cancello il punto a capo (newline '\n') * * input: stringa controllo * output: stringa senza newline * */ void discardnewline (char *); #endif -------------------------------------------------------------------- scrivoleggo.c /* prova wrote read string, funzioni varie */ #include
#include
#include
#include
#include
#include
#include
#include
#include "scrivoleggo.h"
int getlinea (char *s, const int lim)
{
int c, i;
for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i) { s[i] = c; } if(c == '\n') { s[i++] = c; } s[i] = '\0'; return i; } int leggodirectori (char *s, int a) { int x = a; DIR *dir; struct dirent *drent; if((dir = opendir(s)) == NULL) { fprintf(stderr, "Errore opendir()\n"); return EXIT_FAILURE; } while((drent = readdir(dir)) != NULL) { fprintf(stdout, "--> %s\n", drent->d_name);
++x;
}
if(closedir(dir) < 0) { fprintf(stderr, "Errore closedir()\n"); return EXIT_FAILURE; } return (x); } char *leggopath (void) { char *miopath; char miobuff[PATH_MAX + 1]; miopath = getcwd( miobuff, PATH_MAX + 1 ); if( miopath != NULL ) { printf( "My working directory is --<%s>-- done\n", miopath );
}
return (miopath);
}
--------------------------------------------------------------------
scrivoleggo.h
/* input wrote read prova string, header */
#ifndef SCRIVOLEGGO_H
#define SCRIVOLEGGO_H
/*
* scrivo la linea con tastiera
*
* input: stringa da scrivere, massima lunghezza linea
* output: numeri caratteri scritti (da K&C book "language C", the bible for me)
*
*/
int getlinea (char *, const int );
/*
* scansiono directory
*
* input: stringa precorso directory da scansionare, valore numero file
* output: numero file scansionati
*
*/
int leggodirectori (char *, int );
char *leggopath (void);
#endif
--------------------------------------------------------------------
makefile
# -
# makefile by Erika
# se si ha bisogno della libreria matematica con math.h
# togliere il # davanti a -lm nella linea CFLAGS.
# ricordarsi di cambiare i nomi *.h e *.o, se no contattarmi per avere
# un applicazione(GPL) che leggendo una directory, mette i nomi *.h e *.c
# ricava i nomi *.o dai file *.c (*.cpp) e chiede il compilatore (gcc g++ o altro)
# chiede il nome eseguibile e altro ...
# -
# non la metto tale applicazione(GPL) perchè funziona solo in Linux\freeBSD,
# e dopo tante polemiche con i sapientoni dei vari forum/blog di programmazione
# che si ARRANGINO "loro" i sotutto, nhe', a scuola i proff. hanno detto che va bene ...
# -
CC=gcc
CFLAGS=-Wall -g -pedantic #-lm
DEPS = reverse.h scrivoleggo.h
SOURCES := main1.c reverse.c scrivoleggo.c
OBJ = main1.o reverse.o scrivoleggo.o
RM= rm -f
ARCHIVIO := tar -cf
COMPRESSO := gzip
PROGRAMMA := Rovescio
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
rovescio: $(OBJ)
gcc -o $@ $^ $(CFLAGS)
.PHONY: clean cleanall tarzippare
clean:
$(RM) -f $(OBJ)
cleanall: clean
$(RM) -f rovescio
# creo un file .gz, con i sorgenti
tarzippare: clean cleanall
$(RM) $(PROGRAMMA).tar.gz
$(ARCHIVIO) $(PROGRAMMA).tar $(SOURCES) $(DEPS) makefile
$(COMPRESSO) $(PROGRAMMA).tar
Erika
main.c
/* programma test reverse string */
/* non funziona con la localizzasione Italiana, è viene scritto con ??,
* la soluzione la so, ma i soliti sapientoni dei forum\blog di programmazione,
* fanno solo polemiche, nhe'
*
*/
/* Esercizio 16, creare applicativo in terminale
* scrivere le seguenti funzioni:
* da una stringa, passare la stringa alla rovescio, usare malloc e free
* scrivere una stringa da terminale e dare numero caratteri
* togliere il carattere \n dalla stringa
* leggere il path corrente
* leggere i file della directory corrente, non in ordine
* avere come minimo due file *.h e relativi *.c, avere un file main.c, avere un makefile
* dal makefile avere la possibilità di generare un file *.tar.gz e cancellare i file *.o e l'eseguibile
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include "scrivoleggo.h"
#include "reverse.h"
int main (int, char **);
int main (int argc, char **argv)
{
int x = 0;
char a_uno[] = "int main (int argc, char **argv)";
char line[MAX_LINEA];
char miapath[PATH_MAX + 1];
printf ("%s\n", a_uno);
rovescio (a_uno, strlen (a_uno));
printf ("%s\n", a_uno);
strcpy (miapath, leggopath ());
printf ("il mio path %s\n", miapath);
rovescio (miapath, strlen (miapath));
printf ("in reverse: %s\n\n", miapath);
/* per fermare l'immissione dare ctrl C o ctrl D in Linux\freeBSD */
while (getlinea (line, sizeof line) > 1)
{
discardnewline (line);
rovescio (line, strlen (line));
printf("%s\n", line);
}
printf ("\n");
x = leggodirectori ((leggopath ()), 0);
return (0);
}
--------------------------------------------------------------------
reverse.c
/* prova reverse string, funzioni varie */
#include
#include
#include
#include
#include "reverse.h"
char *rovescio (char *s, const int lung)
{
int l = lung,
x = 0;
char *p_dummy; /* puntatore a caratteri per rovesciare la stringa */
/* verifico se vi è abbastanza memoria da allocare */
if(!(p_dummy = malloc (l * sizeof (*p_dummy))))
{
fprintf (stderr,"memoria non allocata"); /* stampo un mess. in stderr su video */
exit (EXIT_FAILURE); /* Esco se ho memoria insufficiente. */
}
--l; /* diminuisco il valore per l'indice, in C partono da zero */
for (x = 0; x < lung; x++) { p_dummy[l] = s[x]; --l; } p_dummy[lung] = '\0'; /* aggiungo la fine stringa */ strcpy (s, p_dummy); /* copio la stringa invertita */ free (p_dummy); /* libero memoria allocata */ return (s); } void discardnewline (char *s) { int i; for(i = 0; s[i] != '\0'; i++) { if(s[i] == '\n') s[i] = '\0'; } } reverse.h /* reverse. prova string, header */ #ifndef REVERSE_H #define REVERSE_H #define MAX_LINEA 1024 /* * rovescio, per invertire una stringa o frase * * input: stringa da invertire, lunghezza stringa da invertire * output: stringa invertita * */ char *rovescio (char *, const int ); /* * cancello il punto a capo (newline '\n') * * input: stringa controllo * output: stringa senza newline * */ void discardnewline (char *); #endif -------------------------------------------------------------------- scrivoleggo.c /* prova wrote read string, funzioni varie */ #include
#include
#include
#include
#include
#include
#include
#include
#include "scrivoleggo.h"
int getlinea (char *s, const int lim)
{
int c, i;
for(i = 0; i < lim - 1 && (c = getchar()) != EOF && c != '\n'; ++i) { s[i] = c; } if(c == '\n') { s[i++] = c; } s[i] = '\0'; return i; } int leggodirectori (char *s, int a) { int x = a; DIR *dir; struct dirent *drent; if((dir = opendir(s)) == NULL) { fprintf(stderr, "Errore opendir()\n"); return EXIT_FAILURE; } while((drent = readdir(dir)) != NULL) { fprintf(stdout, "--> %s\n", drent->d_name);
++x;
}
if(closedir(dir) < 0) { fprintf(stderr, "Errore closedir()\n"); return EXIT_FAILURE; } return (x); } char *leggopath (void) { char *miopath; char miobuff[PATH_MAX + 1]; miopath = getcwd( miobuff, PATH_MAX + 1 ); if( miopath != NULL ) { printf( "My working directory is --<%s>-- done\n", miopath );
}
return (miopath);
}
--------------------------------------------------------------------
scrivoleggo.h
/* input wrote read prova string, header */
#ifndef SCRIVOLEGGO_H
#define SCRIVOLEGGO_H
/*
* scrivo la linea con tastiera
*
* input: stringa da scrivere, massima lunghezza linea
* output: numeri caratteri scritti (da K&C book "language C", the bible for me)
*
*/
int getlinea (char *, const int );
/*
* scansiono directory
*
* input: stringa precorso directory da scansionare, valore numero file
* output: numero file scansionati
*
*/
int leggodirectori (char *, int );
char *leggopath (void);
#endif
--------------------------------------------------------------------
makefile
# -
# makefile by Erika
# se si ha bisogno della libreria matematica con math.h
# togliere il # davanti a -lm nella linea CFLAGS.
# ricordarsi di cambiare i nomi *.h e *.o, se no contattarmi per avere
# un applicazione(GPL) che leggendo una directory, mette i nomi *.h e *.c
# ricava i nomi *.o dai file *.c (*.cpp) e chiede il compilatore (gcc g++ o altro)
# chiede il nome eseguibile e altro ...
# -
# non la metto tale applicazione(GPL) perchè funziona solo in Linux\freeBSD,
# e dopo tante polemiche con i sapientoni dei vari forum/blog di programmazione
# che si ARRANGINO "loro" i sotutto, nhe', a scuola i proff. hanno detto che va bene ...
# -
CC=gcc
CFLAGS=-Wall -g -pedantic #-lm
DEPS = reverse.h scrivoleggo.h
SOURCES := main1.c reverse.c scrivoleggo.c
OBJ = main1.o reverse.o scrivoleggo.o
RM= rm -f
ARCHIVIO := tar -cf
COMPRESSO := gzip
PROGRAMMA := Rovescio
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
rovescio: $(OBJ)
gcc -o $@ $^ $(CFLAGS)
.PHONY: clean cleanall tarzippare
clean:
$(RM) -f $(OBJ)
cleanall: clean
$(RM) -f rovescio
# creo un file .gz, con i sorgenti
tarzippare: clean cleanall
$(RM) $(PROGRAMMA).tar.gz
$(ARCHIVIO) $(PROGRAMMA).tar $(SOURCES) $(DEPS) makefile
$(COMPRESSO) $(PROGRAMMA).tar
Erika
Subscribe to:
Posts (Atom)