CATEGORII DOCUMENTE |
DOCUMENTE SIMILARE |
|
TERMENI importanti pentru acest document |
|
Cateva aplicatii care "au in spate" C sau C++.
1 Sortarea elementelor unui sir de numere reale prin metoda bulelor. Program pretext pentru modularizare. Se utilizeaza fisierul antet facilcrt.h prezentat in continuarea acestei sectiuni.
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include'facilcrt.h'
#include<string.h>
#define _lms 100
#define _optiune '123'
void prelsir();
char prelopt();
void sort();
int dims;
float x[ _lms];
//Functia principala..
void main()
while (op!='3');
//Preluare optiuni program
char prelopt()
while (strchr(_optiune,c)==NULL);
return c;
//Preluare elemente sir
void prelsir()
//Determinare maxim
void sort()
}
}
while(!sortat);
//Afisare sir sortat
clrscr();
makewin2(20,5,60,5);
gotoxy(20,5);
printf('Sirul sortat este');
makewin2(20,8,60,7+dims);
gotoxy(20,7);
for (i=0;i<dims;i++)
getch();
2 Fsier antet care incapsuleaza cateva facilitati de lucru in mod text, utile pentru realizarea unor interfete agreabile ale programelor cu utilizatorii. Numit in exemplul precedent prin facilcrt.h.
#include <conio.h>
#include <stdio.h>
#include <string.h>
#define css 1
//Afisare text dinspre capete
void converg(int end,int linie,char *mesaj)
getch();
//Activare video-invers
void avideo()
//dezactivare video-invers
void dvideo()
//Afisare centrata text in interiorul unei linii
void acentext(int ls, int ld, int linia, char *sir)
//Construire fereastra cu rama dreptunghiulara de //dimensiuni specificate
void makewin2(int ass, int oss, int adj, int odj)
for(i=oss;i<=odj;i++)
gotoxy(ass-1,oss-1);
printf('311');
gotoxy(adj+1,oss-1);
printf('273');
gotoxy(ass-1,odj+1);
printf('310');
gotoxy(adj+1,odj+1);
printf('274');
else
3 Aplicatie pretext pentru lucru cu tablouri, folosind pointeri.
Mai precis, codul prezentat mai jos rezolva urmatoarele probleme:
-alocarea dinamica a memoriei pentru un tablou bidimensional cu numar de linii si coloane precizate;
-citirea elementelor unui tablou bidimensional;
-transpunerea unei matrice;
-afisarea elementelor unei matrice;
#include <conio.h>
#include<iostream.h>
int i,j;
//Alocare dinamica a memoriei pentru o matrice de intregi
//Numarul de linii si coloane sunt precizate prin lista de
//parametri
void almemmat(int **p,int nl,int nc)
//Citirea elementelor matricei de intregi de la tastatura
void citmat(int **p,int nl,int nc)
//Afisarea matricei de intregi
void afismat(int **p,int nl,int nc)
//Transpunerea matricei
void transpun(int **p,int **q,int nl,int nc)
//Functia principala
void main()
4 Sortarea unui sir de numere intregi prin metoda HEAP_SORT. Se utilizeaza reprezentarea liniara a unui arbore binar.
#include<iostream.h>
#include<conio.h>
const int MAX_LIST_SIZE=100;
typedef int element;
typedef element list_type[MAX_LIST_SIZE];
typedef int boolean;
void walk_down(list_type list, int j, int n)
else
found_spot=1;
list[i]=ref;
void heap_sort(list_type list, int n)
y=n;
while(y>0)
void main()
heap_sort(list,nrel);
clrscr();
for(i=0;i<nrel;i++)
cout<<list[i]<<endl;
getch();
5 Rasfoirea unui fisier text si contorizarea aparitiilor unui caracter intr-un fisier text utilizand fluxuri binare.
#include <fstream.h>
#include <stdlib.h>
#include 'facilcrt.h'
char optiuni[]='1234';
char *nf;
int sfs;
//Semnatura functie prelopt()
char prelopt();
//Semnatura functie selnumef()
char *selnumef();
//Semnatura functie rasfft()
void rasfft(char *n);
//Semnatura functie detstatcar()
void detstatcar();
//Implementare functie principala
void main()
}
while (2>1);
//Implementare functie detstatcar()
void detstatcar()
else
gotoxy(20,11);
cout<<'Numar de aparitii:'<<cont;
getch();
}
else
//Implementare functie selnumef()
char *selnumef()
while(strlen(n)==0);
return n;
//Implementare functie rasfft()
void rasfft(char *n)
else
cout<<ch;
}
getch();
}
else
//Implementare functie prelopt()
char prelopt()
6 Modelarea C a unor facilitati de lucru cu memoria video in mod text.
Exemplul de cod prezentat mai jos ilustreaza, in alt context, utilitatea pointerilor, precum si o serie de elemente tehnice referitoare la scrierea/citirea in/din memoria video, atunci cand se lucreaza in mod text.
#ifndef _stdio_h
#include<stdio.h>
#define _stdio_h
#endif
#ifndef _conio_h
#include<conio.h>
#define _conio_h
#endif
#ifndef _string_h
#include<string.h>
#define _string_h
#endif
#define startcol1 16
#define startcol2 36
#define startcol3 56
#include<dos.h>
#include<iostream.h>
#include<stdlib.h>
//Variabila in care se pastreaza adresa memoriei video
char far *mem_vid;
int afcent(int lin,char s[80]);
void codasc();
void antet();
int mod_video();
void setvptr();
void scrie_car(int x,int y,char ch,int atrib);
void scrie_sir(int x,int y,char *p,int atrib);
//Functia returneaza modul video corespunzator
//echipamentului pe care se ruleaza programul
int mod_video()
//Functia seteaza adresa memoriei video in functie de
//modul video curent
void setvptr()
if(vmod==7)
mem_vid=(char far *) 0xB0000000;
else mem_vid=(char far *)0xB8000000;
//Functia permite scrierea unui caracter direct
//in memoria video pe linie si coloana specificate
void scrie_car(int x,int y,char ch,int atrib)
//Functia permite scrierea unui sir de caractere
//in memoria video pe linie si coloana specificata
void scrie_sir(int x,int y,char *p,int atrib)
//Afisarea antetului tabelei de coduri ASCII
void antet()
//Afisare coduri ASCII pe trei coloane
void codasc()
else
switch(col)
case 2:
case 3:
;
}
lin++;
gotoxy(cc,nrcan+lin);printf('%i',i);
gotoxy(cc+7,nrcan+lin);printf('%c',(char)i);
gotoxy(1,23);
for(j=0;j<78;j++)
printf('xf');
gotoxy(1,24);
printf('Pentru terminare apasati o tasta.');
getch();
//Afisare centrata text pe o linie specificata
int afcent(int lin,char s[80])
7 Modelarea C++ a operatiilor cu siruri de caractere. Problema pretext pentru aplicarea corecta a principiului incapsularii, pentru utilizarea in functie de cerinte a constructorilor in specificarea comportamentului unei clase, pentru redefinirea unor operatori uzuali in lucru cu siruri de caractere (concatenarea polimorfica, adresarea unui caracter al tabloului de caractere, etc.).
#include <stdio.h>
#include<string.h>
//Clasa modeleaza lucrul cu siruri de caractere in C++
//class string
//Implementare functii membre
//Implementare constructor creare sir vid
string::string(int)
//Implementare constructor de copiere obiect deja creat
string::string( string & x)
//Implementare constructor de copiere sir obisnuit
string::string(char sir[])
//Implementare redefinire operator atribuire obiect
void string::operator=(string x)
//Implementare redefinire operator atribuire pentru copiere //sir
void string::operator=(char sir[])
//Implementare redefinire operator de testare egalitate //siruri
int string::operator==(string & x)
//Implementare redefinire operator de comparare >
int string::operator>(string & x)
//Implementare redefinire operator de comparare <
int string::operator<(string & x)
//Implementare concatenare a doua siruri
string string::operator+(string & x)
//Implementare destructor
string::~string()
//Implementare redefinire operator []
char &string::operator[](int i)
//implementare extragere sir ca functie prietena
char * sir(string &x)
//Implementare redefinire operator de concatenare
//Varianta obiect+sir
string operator+(string &x, char s[])
//Implementare redefinire operator de concatenare
//Varianta sir+obiect
string operator+(char s[],string &x)
8 Aplicatie care ilustreaza lucrul cu fisiere cu tip in C++
Din nou o problema pretext, care se refera la actualizarea unui fisier in care se pastreaza intrebarile unui test si raspunsurile corecte, presupunand ca o intrebare are mai multe alternative de raspuns.
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <ctype.h>
#include<stdlib.h>
#include <string.h>
#include <fstream.h>
char optiuni[]='1234567';
char *nf;
int sfs,nri;
//Tipul inregistrare
typedef struct struct_test
t_inr_fis;
//Variabila inregistrare
t_inr_fis inr;
//Functia permite preluarea optiunilor programului
char prelopt();
//Functia permite selectarea numelui fisierului de lucru
char *selnumef();
//Functia permite crearea fisierului
void crefis();
//Functia permite adaugarea de inregistrari in fisier
void adinfis();
//Functia permite steregerea unei inregistrari din fisier
void steinfis(int nrint);
//Functia permite vizualizarea inregistrarilor fisierului
void vizfis();
void selin(int ni);
//Implementare functie principala
void main()
case '5': vizfis();
break;
case '6': ;
case '7': break;
}
}
while (op!='7');
void selin(int ni)
else
void steinfis(int nrint)
else
fmanout.close();ftestin.close();
//Implementare crefis()
void crefis()
while (!(toupper(ras)=='N'));
ftestout.close();
//Implementare adinfis()
void adinfis()
while (!(toupper(ras)=='N'));
ftestout.close();
else
//Implementare vizfis()
void vizfis()
};
ftestin.close();
else
//Implementare selnumef()
char *selnumef()
while(strlen(n)==0);
return n;
//Implementare prelopt()
char prelopt()
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 942
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved