Categories
Introduction

Problema olimpiada

Ionel are N cartonașe. Fiecare cartonaș are înscrise două numere (un număr, s, în partea stângă, și
celălalt număr, d, în partea dreaptă). El a așezat cartonașele într-un șir, lipite unul de celălalt, astfel încât
numărul din partea dreaptă a primului cartonaș este lipit de numărul din partea stângă a celui de-al
doilea cartonaș, numărul din partea dreaptă a celui de al doilea cartonaș este lipit de numărul din partea
st├óng─â a celui de-al treilea cartona╚Ö etc. Spunem c─â dou─â cartona╚Öe al─âturate ÔÇŁse potrivescÔÇŁ dac─â
numărul din dreapta al primului cartonaș este egal cu numărul din stânga al celui de al doilea cartonaș.
Ionel observ─â c─â sunt perechi de cartona╚Öe al─âturate care ÔÇŁse potrivescÔÇŁ ╚Öi chiar secven╚Ťe de mai multe
cartona╚Öe al─âturate, ├«n care primul ÔÇŁse potrive╚ÖteÔÇŁ cu al doilea, al doilea ÔÇŁse potrive╚ÖteÔÇŁ cu al treilea etc.
Cerinţă. Scrieţi un program care să citească numărul N de cartonașe, numerele înscrise pe fiecare
cartonaș și determină:
1) Num─ârul de perechi de cartona╚Öe care ÔÇŁse potrivescÔÇŁ.
2) Num─ârul de cartona╚Öe din cea mai lung─â secven╚Ť─â ├«n care fiecare dou─â cartona╚Öe al─âturate ÔÇŁse
potrivescÔÇŁ.
3) Num─ârul de secven╚Ťe cu num─âr maxim de cartona╚Öe care ÔÇťse potrivescÔÇŁ.
Date de intrare
Fi┼čierul de intrare cartonase.in con┼úine doar numere naturale nenule:
Ôłĺ pe prima linie se g─âse╚Öte num─ârul C care poate avea doar valorile 1, 2 sau 3 ╚Öi reprezint─â cerin╚Ťa
care urmează a fi rezolvată. Pe a doua linie a fișierului se găsește numărul natural N, cu
semnifica╚Ťia din enun╚Ť.
Ôłĺ pe fiecare dintre urm─âtoarele N linii se afl─â, ├«n acest─â ordine, c├óte dou─â numere naturale s ┼či d,
separate printr-un spa╚Ťiu, cu semnifica╚Ťia din enun╚Ť pentru un cartona╚Ö. Perechile de numere sunt
date în ordinea în care cartonașele corespunzătoare lor apar în șirul lui Ionel.
Date de ie┼čire
Fi┼čierul de ie┼čire cartonase.out va con┼úine pe prima linie un num─âr natural reprezent├ónd r─âspunsul la
cerin╚Ťa specificat─â.
Restric┼úii ┼či preciz─âri
ÔÇó 1 ÔëĄ N ÔëĄ 500; 1 ÔëĄ s ÔëĄ 10000; 1 ÔëĄ d ÔëĄ10000
ÔÇó Pentru rezolvarea fiec─ârei cerin╚Ťe se ob╚Ťin c├óte 30 de puncte
Categories
Introduction

Fișiere

#include <iostream>
#include <fstream>
int main()
{
    std::ofstream fisier ("c:/primul.txt");
    fisier << "Hello World!\n";
    fisier.close();
}


#include <iostream>     
#include <fstream>      

int main() {
   
    std::ifstream fisier("aldoilea.txt");     
    char c;
    while (fisier.get(c))          
        std::cout << c;
    fisier.close();               
}


#include <iostream>     
#include <fstream>      

int main() {
   
    std::ifstream fisier("numere.txt");     
    int c;
    while (fisier>>c)          
        std::cout << c;
    fisier.close();               
}


#include <iostream>     
#include <fstream>      

int main() {
   
    std::ofstream fisier("numere1.txt");     
    for (int i = 0; i < 10; i++) {
        fisier << i;
    }
    fisier.close();               
}
Categories
Introduction

Scratch

Categories
Introduction

Tipul Char

#include <iostream>
#include <conio.h>

int main()
{
    char c='a';
    while (c != '\r' ) {
        c=_getch();
        std::cout << c;
    }
}
#include <iostream>
#include <conio.h>

int main()
{
    char c='a';
    int s = 0;
    while (c != '\r' ) {
        c=_getch();
        s += c;
        std::cout << c;
    }
    std::cout << s;
}
Categories
Introduction

Conversia unui numar din baza 10 in baza 16

#include <iostream>

int main()
{
    char hexa[10];
    int a = 0, i = 0;
    std::cin >> a;
    while (a > 0) {

        switch (a % 16) {
        case 0:
            hexa[i] = '0';
            break;
        case 1:
            hexa[i] = '1';
            break;
        case 2:
            hexa[i] = '2';
            break;
        case 3:
            hexa[i] = '3';
            break;
        case 4:
            hexa[i] = '4';
            break;
        case 5:
            hexa[i] = '5';
            break;
        case 6:
            hexa[i] = '6';
            break;
        case 7:
            hexa[i] = '7';
            break;
        case 8:
            hexa[i] = '8';
            break;
        case 9:
            hexa[i] = '9';
            break;

        case 10:
            hexa[i] = 'a';
            break;
        case 11:
            hexa[i] = 'b';
            break;
        case 12:
            hexa[i] = 'c';
            break;
        case 13:
            hexa[i] = 'd';
            break;
        case 14:
            hexa[i] = 'e';
            break;
        case 15:
            hexa[i] = 'f';
            break;

        }
        i++;
        a = a / 16;
    }
    for (int j = i-1; j >=0; j--) {
        std::cout << hexa[j];
    }
}
Categories
Introduction

Func╚Ťii

  1. Suma a doua numere
#include <iostream>
int suma(int a, int b) {
    return a + b;
}
int main()
{
    std::cout << suma(3,6);
}

2. Suma unui sir de numere

#include <iostream>
int suma(int a[],int n) {
    int s = 0;
    for (int i = 0; i < n; i++) {
        s = s + a[i];
    }
    return s;
}
int main()
{
    int sir[5] = { 1,4,2,3,5 };
    std::cout << suma(sir,5);
}

3. Maximul unui sir de numere

#include <iostream>
int maxim(int a[],int n) {
    int max = 0;
    for (int i = 0; i < n; i++) {
        if (a[i] > max) {
            max = a[i];
        }
    }
    return max;
}
int main()
{
    int sir[5] = { 1,4,12,3,5 };
    std::cout << maxim(sir,5);
}
Categories
Introduction

Vectori C++

//se da un numar  , sa se afiseze in baza 2
#include "pch.h"
#include <iostream>

int main()
{
	int  a = 0,bazadoi[10],j=0;
	std::cin >> a;
	while(a>0) {
		bazadoi[j] = a % 2;
		a = a / 2;
		j = j + 1;	
	} 
	for (int i = j-1; i >=0; i--) {
		std::cout << bazadoi[i] ;
	}
	
}



1. Se da un sir de numere . Sa se afiseze in ordine inversa
2. Se da un sir de numere. Sa se afiseze numerele din sir mai mari decat media aritmetica a numerelor din sir
3. Se da un sir de numere. Sa se ordoneze crescator
4. Se da un numar, sa se determine daca e palindrom

Categories
Introduction

Probleme olimpiada

  1. Se dau 2 numere. Sa se afiseze multiplii lor comuni mai mici decat 1000.
  2. Sa se afiseze numerele mai mici decat 1000 care au suma cifrelor lor egala cu 10.
  3. Se citesc n numere intregi (pozitive si negative). Sa se afiseze cel mai mic numar pozitiv dintre ele.

Categories
Introduction

Instructiunea FOR

//sa se afiseze primele 10 numere naturale
#include <iostream>

int main()
{
	for (int i = 1; i < 11; i++)
	{
		std::cout << i;
	}
}
//sa se afiseze primele n numere naturale
#include <iostream>

int main()
{
	int n = 0;
	std::cin >> n;
	for (int i = 1; i <=n; i++)
	{
		std::cout << i<<"\n";
	}
}
//sa se afiseze suma primelor n numere naturale
#include <iostream>

int main()
{
	int n = 0;
	int s = 0;
	std::cin >> n;
	for (int i = 1; i <=n; i++)
	{
		s = s + i;
	}
	std::cout << s;
}
//sa se afiseze produsul  primelor n numere naturale
#include <iostream>

int main()
{
	int n = 0;
	int p = 1;
	std::cin >> n;
	for (int i = 1; i <=n; i++)
	{
		p=p*i;
	}
	std::cout << p;
}
//se da un sir de numere , sa se afiseze cel mai mare dintre  ele
#include <iostream>

int main()
{
	int n = 0, nn = 0, nr = 0,max=0;
	std::cin >> nn;
	for (int i = 0; i < nn ; i++)
	{
	   std::cin >> nr;
	   if (max < nr)
	   {
		   max = nr;
	   }
  
	}
	std::cout << max;
   }
//se da un sir de numere , sa se afiseze suma lor
#include <iostream>

int main()
{
	int n = 0, nn = 0, nr = 0, s = 0;
	std::cin >> nn;
	for (int i = 0; i < nn; i++)
	{
		std::cin >> nr;
		s = s + nr;
	}
	std::cout << s;
}
Categories
Introduction

Lectia saptamanii

//1. se da un numar mai mic decat 1000, sa se afle suma cifrelor lui

#include <iostream>

int main()
{
int a = 0, b = 0, c = 0, d = 0;
std::cin >> a;
b = a / 100;
c =a%100/10;
d = a % 10;
std::cout << b+c+d;

}

//2. se da un numar mai mic decat 100, sa se afle suma cifrelor lui
#include <iostream>


int main()
{
	int a =0,b=0 ;
	std::cin >> a;
	b = a % 10 + a/10;
	std::cout << b ;

}
//3.se dau cifrele unui numar , sa se determine  numarul 
#include <iostream>

int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    std::cin >> a >> b >> c;
    a = a * 100;
    b = b * 10;
    c = c * 1;
    std::cout << a + b + c;
}
//4.se dau doua variabile, sa se interschimbe valorile lor metoda paharelor
#include <iostream>

int main()
{
    int a = 0,b = 0,c = 0;
    std::cin >> a >> b;
    c=a;
    a=b;
    b=c;
    std::cout<<a<<b;
}



//4.se dau doua variabile, sa se interschimbe valorile lor fara sa folosim variabila c
#include <iostream>

int main()
{
    int a = 0,b = 0;
    std::cin >> a >> b;
    a=a+b;
    b=a-b;
    a=a-b;
    std::cout<<a<<b;
}



//5. Se dau 4 numere , sa se afle cel mai mare dintre ele, folosind doar 3 if-uri
#include <iostream>

int main()
{
    int a = 0,b = 0,c = 0,d=0;
    int ab = 0, cd = 0;
	std::cin >> a >> b >> c >> d;
	if (a > b) {
		ab = a;
	}
	else {
		ab = b;
	}
	if (c > d) {
		cd = c;
	}
	else {
		cd = d;
	}
	if (ab > cd) {
		std::cout << ab;
	}
	else {
		std::cout << cd;
	}
}