#include <stdio.h>
int main()
{
printf("Servus coders !!!\n");
return 0;
}
//Functie pentru calcul puteri
#include <stdio.h>
int main()
{
int i;
for(i=0;i<10;++i)
printf("%d %d %d\n",i,putere(2,i),putere(-3,i));
return 0;
}
int putere(int baza,int n)
{
int i,p;
p=1;
for(i=1;i<=n;++i)
p=p*baza;
return p;
}
//Transformare din radiani in gr,min,sec
#include <stdio.h>
#define PI 3.1416
int main (void) {
double unghi_rad,gfr,minfr;
int grade,minute,secunde;
printf("Introduceti unghiul in radiani:");
scanf("%lf",&unghi_rad);
grade=gfr=unghi_rad*180./PI;
minute=minfr=(gfr-grade)*60.;
secunde=(minfr-minute)*60.;
printf("\n Unghiul are %d grade, %d minute si %d secunde.\n",grade,minute,secunde);
return 0;
}
//Testare palindrom
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int palindrom(int n) {
int n_salv=n;
int n_inv=0;
while(n) {
n_inv=n_inv*10 + n%10;
n/=10;
}
return(n_salv==n_inv);
}
int main(void) {
int n;
printf("Introduceti numarul:"); scanf("%d",&n);
if(palindrom(n))
printf("Numarul este palindrom\n");
else
printf("Numarul nu este palindrom\n");
return 0;
}
//Testare palindrom-alta varianta
#include <stdio.h>
#include <string.h>
int main(){
int i,j;
char s[20];
i=0; j=strlen(s)-1;
while(i=j) printf("palindrom"); else printf("nu este palindrom");
return 0;
}
/* se citesc n numere */
/* fara a ordona numerele,se determina al k numar ca valoare din sir */
#include <conio.h>
#include <stdio.h>
#include <process.h>
int main()
{
int num[15];
int n,k,i,j,maimici;
clrscr();
printf("Cate numere avem: ");
scanf("%d",&n);
/* citire numere */
for(i=0;i<n;i++)
{
printf("n[%d]=",i); /* n[0]=..,n[1]=.., */
scanf("%d",&num[i]);
}
printf("\n\nAl catelea numar?");
scanf("%d",&k);
/* afisare */
for(i=0;i<n;i++)
{
maimici=0;
for(j=0;j<n;j++)
if(i!=j)
if(num[i]>num[j])
maimici++;
if(maimici==(k-1))
{
printf("Al %d-lea numar din masivul initial este %d\n\n",k,num[i]);
exit;
}
}
getch();
return 0;
}
//Divizibilitate cu 7
#include <iostream>
using namespace std;
int main()
{
int n;
cout<<"Enter a number and press ENTER:";
cin>>n;
if(n%7==0)
cout<<"The number is divisible by 7";
else
cout<<"The number is not divisible by 7";
return 0;
}
//Utilitarul echo
//varianta C
/*utilizare: echo text */
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
int i;
for(i=1;i<argc;i++)
printf("%s %s",argv[i],(i<argc-1)? " ":" ");
printf("\n");
return 0;
}
//Utilitarul echo
//varianta C++ *
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
while(--argc>0){
cout* <<++argv<<endl; // va indica spre argv[1] din start
}
return 0;
}
//Factorial
#include <iostream>
using namespace std;
int fact(int num);
int main()
{
int n;
cout<<"Enter a number and press ENTER: ";
cin>>n;
cout<<"Function returned "<<fact(n);
return 0;
}
int fact(int n){
int i;
int product=1;
for(i=1; i<=n;i++)
product*=i;
return product;
}
// c.m.m.d.c. & c.m.m.m.c.
#include <stdio.h>
#include <conio.h>
long int x,y,dc;
long int cmd(long int x,long int y)
{
if(y==0)
return x;
else
return cmd(y,x % y);
}
main()
{
clrscr();
printf("X= ");
scanf("%d",&x);
printf("Y= ");
scanf("%d",&y);
printf("\n\n");
dc=cmd(x,y);
printf("Cmmdc=%ld\n",dc);
printf("Cmmmc=%ld\n",x*y/dc);
getch();
return 0;
}
//Functie afisare
#include <iostream>
using namespace std;
int print_out(int n); //prototipul functiei
int main()
{
int n;
cout<<"Enter a number and press ENTER: ";
cin>>n;
print_out(n); //apelare, n--parametru actual
return 0;
}
int print_out(int n){ //definitia,int n--parametru formal
int i;
for(i=1;i<=n;i++)
cout<<i<<" ";
return 0;
}
//Testare numere prime
#include <iostream>
#include <math.h>
using namespace std;
int prime(int n); //declarare
int main()
{
int i; //variabila locala
while(1) {
cout<<"Enter a number (0 to exit)";
cout<<" and press Enter:";
cin>>i;
if(i==0)
break;
if(prime(i)) //se apeleaza functia prime; daca rezultatul intors de prime este true...
cout<<i<<" is prime"<<endl;
else
cout<<i<<" is not prime"<<endl;
}
return 0;
}
int prime(int n) {
int i; //variabila locala
for(i=2; i<=sqrt((double)n);i++) {
if(n%i==0)
return false;//nu este prim
}
return true;
}
//Testare numere prime-alta varianta
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int n,i,is_prime;
is_prime=true;
cout<<"Enter a number and press ENTER:";
cin>>n;
i=2;
double sqrt_n=sqrt(static_cast<double>(n)); // n il convertim la tipul double
while(i<=sqrt_n){ // divizorii lui n se afla anterior lui sqrt(n)
if(n%i==0){
is_prime=false;
break; // dupa ce a fost gasit primul divizor se intrerupe ciclarea
}
i++;
}
if(is_prime)
cout<<"Number is prime !";
else
cout<<"Number is not prime !";
return 0;
}
//conversie din baza 2 in baza 10
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int putere(int x);
int main()
{
int i,numar10=0,n2,cod;
char numar2[20];
char *ch;
clrscr();
printf("Numar in baza 2:");
scanf("%s",&numar2);
for(i=strlen(numar2)-1;i>=0;i--)
{
*ch=numar2[i];
n2=atoi(ch);
numar10+=n2*putere(strlen(numar2)-i-1);
}
/* afisare */
printf("\nNumarul in baza 10 este %d",numar10);
getch();
return 0;
}
int putere(int x)
{
int p,j;
p=1;
for(j=1;j<=x;j++)
p*=2;
return p;
}
/* de la tastatura se citesc n numere crescatoare */
/* se determina daca numarul 'ce' (citit de la intrare) apare in sirul initial si pe ce pozitie */
/* CAUTARE BINARA */
#include <stdio.h>
#include <conio.h>
#include <process.h>
long binsearch(int masiv[],int n,int x)
{
int low,upp,i;
low=0;
upp=n;
while (low<=upp) {
i=(low+upp)/2;
if(masiv[i]==x)
{
printf("\n");
printf("Numarul apare pe pozitia %d",i); /* pozitia elementului cautat */
return 100;
}
if(masiv[i]>x)
upp=i-1; /* cautare dreapta */
else
low=i+1; /* cautare stanga */
}
return -1;
}
void main(void)
{
int masiv[25],nelem,ce,i;
clrscr();
do {
printf("Numarul de elemente :"); /* citire numar de elemente */
scanf("%u",&nelem);
}while(nelem>25);
for(i=0;i<nelem;i++)
{
printf("Numarul %d= ",i); /* citire elemente masiv */
scanf("%u",&masiv[i]);
}
printf("Numarul cautat= "); /* ce numar se cauta */
scanf("%u",&ce);
if(binsearch(masiv,nelem,ce)==-1) /* apel functia binsearch */
printf("KO");
getch();
}
/* citeste de la tastatura n numere */
/* sorteaza crescator numerele prin METODA BULELOR */
#include <stdio.h>
#include <conio.h>
void ord (int x[],int n)
{
int i,flag,temp;
flag=-1;
while (flag==-1) {
flag=1;
for(i=0;i<n-1;i++)
if(x[i]>x[i+1]) {
temp=x[i];
x[i]=x[i+1];
x[i+1]=temp;
flag=-1;
}
}
}
main()
{
int masiv[25],i,nelem;
clrscr();
do {
printf("Numarul de elemente :");
scanf("%u",&nelem);
}while(nelem>25);
for(i=0;i<nelem;i++)
{
printf("Numarul %d= ",i);
scanf("%u",&masiv[i]);
}
if(nelem>1)
{
ord(masiv,nelem);
printf("\n\n");
printf("Masivul sortat crescator: \n\n");
for(i=0;i<nelem;i++)
printf("%d%c",masiv[i],' ');
}
getch();
return 0;
}
/* Verifica daca doua numere sunt prietene */
/* numere prietene=daca suma divizorilor unui numar(cu exceptia sa) este egala cu celalalt numar si viceversa */
#include <stdio.h>
#include <conio.h>
#include <math.h>
void Nu()
{
printf("\nnumerele nu sunt prietene!");
printf("\n\a");
}
void main(void)
{
int x,y,S1,S2,i;
clrscr();
do
{
printf("Numarul X:");
scanf("%u",&x);
}while(x<0);
do
{
printf("Numarul Y:");
scanf("%u",&y);
}while(y<0);
S1=0;
for(i=1;i<=ceil(x/2);i++)
if(x%i==0)
{
printf("%d\n",i);
S1+=i;
}
printf("\nS1=%d\n\n",S1);
if(S1==y) /* daca suma divizorilor lui x este egala cu y */
{
S2=0;
for(i=1;i<=ceil(y/2);i++)
if(y%i==0)
{
printf("%d\n",i);
S2+=i;
}
printf("\nS2=%d\n",S2);
if(S2==x) /* daca suma divizorilor lui y este egala cu x */
{
printf("\nNumerele sunt prietene!");
printf("\n\a");
}
else Nu(); /* numerele nu sunt prietene */
}
else Nu();
getch();
}
/* se initializeaza o variabila de tip sir de caractere */
/* apoi folosind un pointer se scrie sirul invers */
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
char *sir_ptr="Vasiu Lucian";
int i;
clrscr();
printf("Sirul normal : %s\n\n",sir_ptr);
printf("Sirul afisat invers : ");
for(i=strlen(sir_ptr)-1;i>=0;i--)
printf("%c",sir_ptr[i]);
printf("\n\nApasati ENTER pentru terminare!");
getch();
return 0;
}
/* scrie intr-un fisier cu acces aleator un numar de inregistrari */
/* permite cautarea unei inregistrari stocate la pozitia introdusa de utilizator */
#include <stdio.h>
#include <conio.h>
typedef struct inreg {
int nr;
char nume[20];
char prenume[20];
char tel[7];
}elev;
main()
{
FILE *fis;
elev el;
unsigned int i,x;
long int ofs;
clrscr();
fis=fopen("fis100.txt","w+");
for(i=0;i<4;i++) /* introducem 4 inregistrari */
{
printf("Numarul elevului: ");
scanf("%d",&el.nr);
printf("Numele elevului : ");
scanf("%20s",el.nume);
fflush(stdin);
printf("Prenumele elevului : ");
scanf("%20s",el.prenume);
fflush(stdin);
printf("Nr. telefon : ");
scanf("%7s",el.tel);
fflush(stdin);
fwrite(&el,sizeof(elev),1,fis);
printf("\n");
}
printf("Ce inregistrare cautam? ");
scanf("%u",&x);
ofs=(x-1)*sizeof(elev);
fseek(fis,ofs,SEEK_SET);
fread(&el,sizeof(elev),1,fis);
printf("\n\n Inregistrarea este:\n %d %s %s %s \n",el.nr,el.nume,el.prenume,el.tel);
fclose(fis);
printf("\nOK\n");
getch();
return 0;
}