Come scrivere il codice di un programma C++ per il calcolo della media dei voti scolastici

Vuoi scrivere un programma C++ che calcoli la media dei tuoi voti scolastici? Qui di seguito ti propongo un esempio.

La procedura che segue il programma esempio è la seguente:

  • chiede all’utente quanti voti vuole immettere;
  • chiede all’utente di immettere il numero di voti che ha dichiarato uno a uno;
  • calcola la media aritmetica dei valori inseriti;
  • termina il programma dichiarando la media aritmetica dei voti.

Qui di seguito riporto il codice (copialo e incollalo se ti serve!):


#include <iostream>
#include <string>
using namespace std;
// dichiarazioni funzione per il calcolo della media aritmetica
float averageFloat(float vet[], int N);

int main()
{
int numElem = 0;
cout << "Quanti sono i voti che vuoi inserire?"; 
cin >> numElem;
cout << "Il numero di voti che vuoi inserire e' " << numElem << "\n"; 
float vectorFloat[numElem]; 
for(int k=0; k < numElem; k++)
     { 
     cout << "Inserisci il voto numero " << (k + 1) << "\n"; 
     cin >> vectorFloat[k];
     }
float res = 0;
res = averageFloat(vectorFloat, numElem);
cout <<"La media dei valori che hai inserito e': " << res;
return 0;
}

//funzione per il calcolo della media aritmetica
float averageFloat(float vet[], int N) {
int i;
float avg = 0;
for ( i = 0; i < N; i++) {
avg = avg + vet[i];
}
avg = avg / N; //calcolo della media
return avg;
}

Vuoi che ti aiuti a fare un programma diverso? Scrivi una mail a orangejellybeanojb@gmail.com, ti aspetto!

Creazione di un dataset da registrazione Doppler con Matlab

In questo post faccio vedere come creare un dataset in matlab in modo automatizzato, avendo a disposizione delle annotazioni in estensione “.mat”.

Nel mio caso sono un insieme di registrazioni fetali Doppler perchè, essendo un dottorando nel settore della biomedica, mi sono capitati recording di questo tipo.

Quello che faccio in questo codice è:

  1. Creare una struttura con tutte le immagini presenti nella cartella corrente (nel mio caso le registrazioni Doppler) e che hanno un ending tag noto (nel mio caso ‘*filtered.bmp’)
  2. Decidere dei labels coerenti con le annotazioni di cui dispongo (le mie annotazioni avevano, nella terza colonna della matrice “annotations”, numeri da 1 a 3, indicanti la tipologia del ciclo fetale: ciclo, flip di ciclo cardiaco o non ciclo)
  3. Creare delle cartelle in cui inserire i sample una volta estratti
  4. Fase di estrazione dei sample e inserimento nella cartella opportuna

Qui di seguito la prima fase:

% select all images with the desired ending and create the struct
TAG_EndNameImgs = '*filtered.bmp'; % choose the correct ending for you
imgs = dir(endNameImgs);
%% Load annotation on your workspace and prepare.
load('annotations.mat')
imgsStruct=imgs;
period=128; % my period was of 128 sample approximatively
imagesLabeled (1:size(annotations, 1)) = struct ('Image', [], 'Label', '');

Bisogna caricare nel workspace le annotazioni (erano un .mat). Nel mio caso la colonna tre della matrice delle annotazioni conteneva gli indici di inizio di un ciclo cardiaco o non cardiaco (annotazioni prese da un medico).

Qui di seguito la seconda fase:

%% choose your own labels
labels = ["heart_cicle" "heart_cicle_flipped" "NOT_heart_cicle"];

Terza fase:

 

%% here I'm dividing the folders that will contain the samples
if (~exist(pwd + "\heart_cicle", 'dir')||~exist(pwd + "\heart_cicle", 'dir'))
mkdir(pwd + "\heart_cicle");
mkdir(pwd + "\NOT_heart_cicle");
else
disp("the folders already exist");
end

Quarta fase:

 %% Go through each record in imgsStruct (for me was the doppler)
% and cut selectively.
% Insert all the cut images in imgsStruct
disp("Now, from all records, I'll build sample images. Please be patient...");
for i=1:size(imgsStruct, 1)
% find all the annotations for that file
indexes = find(annotations(:,3)==i);
imgTmp = imread(imgsStruct(i,1).name);

for j = 1:size(indexes,1)
beg_col =annotations(indexes(j),1); % annotated index tells the begin
end_col = annotations(indexes(j),1)+ period; % end on period
imgTmpSplitted = imageDopplerSplitter(imgTmp, beg_col, end_col);
% establish the labels and insert the sample into the appropriate folder
if ((annotations(indexes(j),2)==1)) % heart_cicle
imagesLabeled(indexes(j)).Label = labels(1);
imagesLabeled(indexes(j)).Image = imgTmpSplitted;
baseFileName = "sample" + int2str(indexes(j)) + ".bmp"; % Whatever....
fullFileName = fullfile(pwd + "\" + labels(1), baseFileName);
imwrite(imagesLabeled(indexes(j)).Image, fullFileName);
elseif ((annotations(indexes(j),2)==2)) % heart_cicle_flipped
imagesLabeled(indexes(j)).Label = labels(2);
imagesLabeled(indexes(j)).Image = imgTmpSplitted;
baseFileName = "sample" + int2str(indexes(j)) + ".bmp"; % Whatever....
fullFileName = fullfile(pwd + "\" + labels(1), baseFileName);
imwrite(imagesLabeled(indexes(j)).Image, fullFileName);
elseif ((annotations(indexes(j),2)==3)) % NOT_heart_cicle
imagesLabeled(indexes(j)).Label = labels(3);
imagesLabeled(indexes(j)).Image = imgTmpSplitted;
baseFileName = "sample" + int2str(indexes(j)) + ".bmp"; % Whatever....
fullFileName = fullfile(pwd + "\" + labels(3), baseFileName);
imwrite(imagesLabeled(indexes(j)).Image, fullFileName);
end
end
end
disp ("Now samples are separated into the folder heart_cycle and NOT_heart_cycle");

In questo post è stato presentato un esempio di codice Matlab per la creazione di un dataset esempio (nel mio caso un Doppler). Questa creazione di dataset può essere adattata ai propri scopi.

Non posso fornire il dataset su cui sto lavorando in quanto proprietà dell’Università per la quale lavoro e non posso neanche fornire i dettagli delle elaborazioni successive degli studi correlati. Nessuna domanda in tal senso verrà presa in considerazione e/o riceverà delle risposte.