Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature may not be available in some browsers.
pronto!Visualizza allegato 50504
Programmiamo con Inforge | Presentazione
Ad oggi, sul web, si trovano moltissime guide sui vari linguaggi di programmazione e sulle loro molteplici applicazioni. Tuttavia, chi si approccia a queste risorse, non sempre riesce a mettere in pratica ciò che ha appreso. Al fine di limitare queste mancanze, nasce Programmiamo con Inforge.
In questa rubrica potrai scrivere codice per la risoluzione di alcuni problemi legati alla programmazione, mettendo in pratica quanto stai apprendendo dalla teoria oppure mostrando le tue abilità e competenze nel campo dell’informatica.
Partiamo dalle Basi del C
In questa guida puoi trovare i testi per studiare e approfondire il C: I migliori libri per imparare e approfondire il C
In questa discussione puoi trovare le risposte alle domande più frequenti su come scrivere codice in C: Frequently asked questions: da dove si parte?
Esercitazione 01 in C | Livello base | [Array e operazioni]
L'esercitazione si compone di 7 esercizi nei quali ti sarà richiesto di definire una serie di funzioni utili per lo svolgimento di diverse operazioni sugli array. Una volta scritte le funzioni, dovrai richiamarle nel main() e chiedere all'utente di svolgerle.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Soluzioni
Nell'eventualità in cui non dovessi riuscire ad approcciarti ad uno degli esercizi proposti, prendi queste soluzioni come spunto per elaborarne una nuova versione. Tuttavia, ti consigliamo di pubblicare una tua soluzione originale in questa discussione così da poter essere aiutato passo passo ad arrivare ad un codice migliore.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Conclusioni
Pubblica la soluzione ottimale per risolvere gli esercizi e ricorda che puoi confrontarti con il resto della community in questo thread, chiedere aiuto o aiutare gli altri![]()
/*
* Esercizi di base, per Inforge, by kernelspace
*
* Da linux/gcc, compila con:
*
* gcc -Wall -o base main.c
*
* Sintassi conforme a
* https://www.kernel.org/doc/html/v4.10/process/coding-style.html
* verificata con checkpatch.pl
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
static const char filename[] = "dati.txt";
static void err(char *msg)
{
printf("errore: %s\n", msg);
exit(1);
}
static float array_mean(float *array, int size)
{
float mean;
int n = size;
while (size--)
mean += *array++;
mean /= n;
return mean;
}
static void array_print_to_screen(float *array, int size)
{
int i = 1;
while (size--)
printf("%d: %f\n", i++, *array++);
}
static void array_input(float *array, int size)
{
float f;
int i = 1;
printf("vai con la sequenza\n");
while (size--) {
printf("%d: ", i++);
scanf("%f", &f);
*array++ = f;
}
}
static float *array_alloc(int size)
{
return (float *)malloc(size * sizeof(float));
}
static int array_min_index(float *f, int size)
{
float min;
int n, min_idx = 0;
for (min = *f, n = 0; n < size; ++n) {
if (f[n] < min) {
min = f[n];
min_idx = n;
}
}
return min_idx;
}
static void array_sort(float *f, int size)
{
float *p;
int items, min_idx, i = 0;
p = array_alloc(size);
if (!p)
err("non posso allocare");
for (items = size; items; items--) {
min_idx = array_min_index(f, items);
p[i++] = f[min_idx];
memmove(&f[min_idx], &f[min_idx + 1],
(size - min_idx - 1) * sizeof(float));
}
memcpy(f, p, size * sizeof(float));
free(p);
}
static int array_write_to_file(float *array, int size, const char *filename)
{
FILE *f;
int i = 1;
f = fopen(filename, "w+");
if (!f)
return -1;
fprintf(f, "Ecco la list ordinata:\n");
while (size--)
fprintf(f, "%d: %f\n", i++, *array++);
fclose(f);
return 0;
}
int main(void)
{
int num = 0, x;
float mean, *f;
printf("Ciao !\n");
printf("calcolo media, quanti valori vuoi inserite (max 100) ? ");
while ((x = getchar()) != '\n') {
num *= 10;
num += x - 48;
}
if (!num || num > 100)
err("valore errato");
f = array_alloc(num);
if (!f)
err("non posso allocare");
array_input(f, num);
printf("hai inserito:\n");
array_print_to_screen(f, num);
printf("ora riordino ...\n");
array_sort(f, num);
printf("sequenza riordinata:\n");
array_print_to_screen(f, num);
mean = array_mean(f, num);
printf("media :%f\n", mean);
if (array_write_to_file(f, num, filename))
err("non ho potuto salvare su file");
printf("tutto ok, dati in %s !\n", filename);
free(f);
return 0;
}
Visualizza allegato 50504
Programmiamo con Inforge | Presentazione
Ad oggi, sul web, si trovano moltissime guide sui vari linguaggi di programmazione e sulle loro molteplici applicazioni. Tuttavia, chi si approccia a queste risorse, non sempre riesce a mettere in pratica ciò che ha appreso. Al fine di limitare queste mancanze, nasce Programmiamo con Inforge.
In questa rubrica potrai scrivere codice per la risoluzione di alcuni problemi legati alla programmazione, mettendo in pratica quanto stai apprendendo dalla teoria oppure mostrando le tue abilità e competenze nel campo dell’informatica.
Partiamo dalle Basi del C
In questa guida puoi trovare i testi per studiare e approfondire il C: I migliori libri per imparare e approfondire il C
In questa discussione puoi trovare le risposte alle domande più frequenti su come scrivere codice in C: Frequently asked questions: da dove si parte?
Esercitazione 01 in C | Livello base | [Array e operazioni]
L'esercitazione si compone di 7 esercizi nei quali ti sarà richiesto di definire una serie di funzioni utili per lo svolgimento di diverse operazioni sugli array. Una volta scritte le funzioni, dovrai richiamarle nel main() e chiedere all'utente di svolgerle.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Soluzioni
Nell'eventualità in cui non dovessi riuscire ad approcciarti ad uno degli esercizi proposti, prendi queste soluzioni come spunto per elaborarne una nuova versione. Tuttavia, ti consigliamo di pubblicare una tua soluzione originale in questa discussione così da poter essere aiutato passo passo ad arrivare ad un codice migliore.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Conclusioni
Pubblica la soluzione ottimale per risolvere gli esercizi e ricorda che puoi confrontarti con il resto della community in questo thread, chiedere aiuto o aiutare gli altri![]()
ProntoVisualizza allegato 50504
Programmiamo con Inforge | Presentazione
Ad oggi, sul web, si trovano moltissime guide sui vari linguaggi di programmazione e sulle loro molteplici applicazioni. Tuttavia, chi si approccia a queste risorse, non sempre riesce a mettere in pratica ciò che ha appreso. Al fine di limitare queste mancanze, nasce Programmiamo con Inforge.
In questa rubrica potrai scrivere codice per la risoluzione di alcuni problemi legati alla programmazione, mettendo in pratica quanto stai apprendendo dalla teoria oppure mostrando le tue abilità e competenze nel campo dell’informatica.
Partiamo dalle Basi del C
In questa guida puoi trovare i testi per studiare e approfondire il C: I migliori libri per imparare e approfondire il C
In questa discussione puoi trovare le risposte alle domande più frequenti su come scrivere codice in C: Frequently asked questions: da dove si parte?
Esercitazione 01 in C | Livello base | [Array e operazioni]
L'esercitazione si compone di 7 esercizi nei quali ti sarà richiesto di definire una serie di funzioni utili per lo svolgimento di diverse operazioni sugli array. Una volta scritte le funzioni, dovrai richiamarle nel main() e chiedere all'utente di svolgerle.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Soluzioni
Nell'eventualità in cui non dovessi riuscire ad approcciarti ad uno degli esercizi proposti, prendi queste soluzioni come spunto per elaborarne una nuova versione. Tuttavia, ti consigliamo di pubblicare una tua soluzione originale in questa discussione così da poter essere aiutato passo passo ad arrivare ad un codice migliore.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Conclusioni
Pubblica la soluzione ottimale per risolvere gli esercizi e ricorda che puoi confrontarti con il resto della community in questo thread, chiedere aiuto o aiutare gli altri![]()
vaiVisualizza allegato 50504
Programmiamo con Inforge | Presentazione
Ad oggi, sul web, si trovano moltissime guide sui vari linguaggi di programmazione e sulle loro molteplici applicazioni. Tuttavia, chi si approccia a queste risorse, non sempre riesce a mettere in pratica ciò che ha appreso. Al fine di limitare queste mancanze, nasce Programmiamo con Inforge.
In questa rubrica potrai scrivere codice per la risoluzione di alcuni problemi legati alla programmazione, mettendo in pratica quanto stai apprendendo dalla teoria oppure mostrando le tue abilità e competenze nel campo dell’informatica.
Partiamo dalle Basi del C
In questa guida puoi trovare i testi per studiare e approfondire il C: I migliori libri per imparare e approfondire il C
In questa discussione puoi trovare le risposte alle domande più frequenti su come scrivere codice in C: Frequently asked questions: da dove si parte?
Esercitazione 01 in C | Livello base | [Array e operazioni]
L'esercitazione si compone di 7 esercizi nei quali ti sarà richiesto di definire una serie di funzioni utili per lo svolgimento di diverse operazioni sugli array. Una volta scritte le funzioni, dovrai richiamarle nel main() e chiedere all'utente di svolgerle.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Soluzioni
Nell'eventualità in cui non dovessi riuscire ad approcciarti ad uno degli esercizi proposti, prendi queste soluzioni come spunto per elaborarne una nuova versione. Tuttavia, ti consigliamo di pubblicare una tua soluzione originale in questa discussione così da poter essere aiutato passo passo ad arrivare ad un codice migliore.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Conclusioni
Pubblica la soluzione ottimale per risolvere gli esercizi e ricorda che puoi confrontarti con il resto della community in questo thread, chiedere aiuto o aiutare gli altri![]()
Ottimo! Per qualsiasi domanda o per postare la tua soluzione scrivi pure qui!provo per curiosità
prontissimoVisualizza allegato 50504
Programmiamo con Inforge | Presentazione
Ad oggi, sul web, si trovano moltissime guide sui vari linguaggi di programmazione e sulle loro molteplici applicazioni. Tuttavia, chi si approccia a queste risorse, non sempre riesce a mettere in pratica ciò che ha appreso. Al fine di limitare queste mancanze, nasce Programmiamo con Inforge.
In questa rubrica potrai scrivere codice per la risoluzione di alcuni problemi legati alla programmazione, mettendo in pratica quanto stai apprendendo dalla teoria oppure mostrando le tue abilità e competenze nel campo dell’informatica.
Partiamo dalle Basi del C
In questa guida puoi trovare i testi per studiare e approfondire il C: I migliori libri per imparare e approfondire il C
In questa discussione puoi trovare le risposte alle domande più frequenti su come scrivere codice in C: Frequently asked questions: da dove si parte?
Esercitazione 01 in C | Livello base | [Array e operazioni]
L'esercitazione si compone di 7 esercizi nei quali ti sarà richiesto di definire una serie di funzioni utili per lo svolgimento di diverse operazioni sugli array. Una volta scritte le funzioni, dovrai richiamarle nel main() e chiedere all'utente di svolgerle.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Soluzioni
Nell'eventualità in cui non dovessi riuscire ad approcciarti ad uno degli esercizi proposti, prendi queste soluzioni come spunto per elaborarne una nuova versione. Tuttavia, ti consigliamo di pubblicare una tua soluzione originale in questa discussione così da poter essere aiutato passo passo ad arrivare ad un codice migliore.
*** Testo nascosto: non può essere aggiunto alla citazione ***
Conclusioni
Pubblica la soluzione ottimale per risolvere gli esercizi e ricorda che puoi confrontarti con il resto della community in questo thread, chiedere aiuto o aiutare gli altri![]()
/* Esercizio 1 */
float array_mean(float *arr, int number_of_items){
float sum = 0;
for (int i = 0; i < number_of_items; i++){
sum += arr[i];
}
return ((float) sum / number_of_items);
}
/* Esercizio 2 */
void array_print_to_screen(float *array, int number_of_items){
for (int i = 0; i < number_of_items; i++){
printf("%.3f\n", array[i]);
}
}
/* Esercizio 3 */
void array_input(float *array, int number_of_items){
for (int i = 0; i < number_of_items; i++){
printf("Inserire elemento %d dell'array:\n", i+1);
scanf(" %f", &array[i]);
}
}
/* Esercizio 4 */
float *array_alloc(int number_of_items){
float *ptr = malloc(number_of_items * sizeof(float));
if (ptr != NULL){
return ptr;
}
}
/* Esercizio 5 */
int array_min_index(float *array, int number_of_items){
int index = 0;
for (int i = 1; i < number_of_items; i++){
if (array[i] < array[index]){
index = i;
}
}
return index;
}
/* Esercizio 6 */
int compare (const void *elem1, const void *elem2) {
if ((*(float *)elem1) == (*(float *)elem2))
return 0;
else if ((*(float *)elem1) < (*(float *)elem2))
return -1;
else
return 1;
}
qsort((void *)array, array_size, array_width, compare); /* Utilizzo dell'algoritmo quicksort per l'ordinamento crescente dell'array.
array_size = sizeof(array)/sizeof(array[0])
array_width = sizeof(array[0]) */
/* Esercizio 7 */
void array_write_to_file(float *array, char *nomefile, int array_size, FILE *fptr){
fptr = fopen(nomefile, "w");
if (fptr == NULL){
printf("ERRORE NELLA SCRITTURA DEL FILE.\n");
return;
}
for (int i = 0; i < array_size; i++){
fprintf(fptr, "%f", array[i]);
}
fclose(fptr);
}