Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 20

12.10.

2022
create table test(id int unique key auto_increment,nume text);
insert into test(nume) values(’cici’);
insert into test(nume) values(’mimi’);
insert into test(nume) values(’cici’);

select left(nume,2) from test;

select * from test where left(nume,1)=”m”;

select * from test where nume like “m%”;

select * from test order by nume;

select distinct(nume) * from test order by nume;;

alter table test add prenume text;

update test set renume=”Ion” where id=1;

select count (*) from test;

Funcții agregate(se aplica la un grup de articole):


select count(*) from test where nume=”cici”;
min()
max()
avg()

(select if(mate>eng,mate,eng) from elevi;)

select min(info) where info>=5;

14.10.2022
using System;

namespace pbinfo_interval2
{
internal class Program
{
static void Main(string[] args)
{
string[] s=Console.ReadLine().Split(new char { ' ' },StringSplitOptions.RemoveEmptyEntries);
int a =int.Parse(s[0]);
int b =int.Parse(s[1]);
int x =int.Parse(s[2]);
if (a<=x && x<=b)
}
}
}

using System;
namespace exercitiiclasa
{
internal class Program
{
static void Main(string[] args)
{
int n = int.Parse( Console.ReadLine());
string[] s= Console.ReadLine().Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries);
double sum = 0, med_aritm;
int i;
for (i = 0; i < s.Length; i++)
sum += double.Parse(s[i]);
med_aritm = sum / n;
Console.WriteLine("{0: 0.00}", med_aritm);
Console.ReadKey();
}
}
}
—---------------

namespace chestiimath
{
internal class Program
{
static void Main(string[] args)
{
Console.Write(Math.Sqrt(2));
Console.Write(' ');
Console.WriteLine(Math.Sin(Math.PI / 3));

}
}
}

—--
MariaDB [work]> select min(clasa) from EleviACSL;
+------------+
| min(clasa) |
+------------+
| 07 |
+------------+
1 row in set (0.003 sec)

MariaDB [work]> select min(clasa),nume from EleviACSL;


+------------+-----------------+
| min(clasa) | nume |
+------------+-----------------+
| 07 | ?TEFANIA ABABEI |
+------------+-----------------+
1 row in set (0.037 sec)

MariaDB [work]> select nume,min(clasa) from EleviACSL;


+-----------------+------------+
| nume | min(clasa) |
+-----------------+------------+
| ?TEFANIA ABABEI | 07 |
+-----------------+------------+
1 row in set (0.001 sec)
17.10.2022
Importul si exportul de date
Exportul
mysqldump nume_baza_date numele tabelelor -u utilizator -pparola
- Se afiseaza in command prompt
- ca sa nu afiseze ci sa salveze intr-un doc, e semnul ‘>’
mysqldump nume_baza_date numele tabelelor -u utilizator -pparola > nume_fisier.sql
- daca nu pui numele niciunei tabele le ia pe toate din baza de date SPECIFICATA
- cd \work\Doru\22_10_17
- mysqldump work -u mysql -pmysql
- mysqldump

Importul
mysql baza_date -u utilizator -p < nume_backup.sql

19.10.2022

c#:
- Fara rotunjire: ( a doua zecimala) inmultesti cu 100, iei partea intreaga si dupa imparti la 100
- ex.: m1=(int)(m1*100)/100.0;
- console.write(m3.ToString(“0.00”));
sau
- console.write(“{0:0.00}”,m1);

baze de date(o colectie de tabele)


- Functiile agregate(numarare,suma,medie,minim,maxim,grupare(group by)) :
- suma: select sum(nota) from eleviacsl;
- media: select avg(nota) from eleviacsl;
- numara cate valori din camp sunt diferite de NULL: select count(nota) from eleviacsl;
- Numara tot : count(*) from eleviacsl;
- max : select max(nota)
- max : select max(nume) - arata pe cel cu ultima litera din alfabet
- select ……………. group by
- select clasa, avg(nota) from eleviacsl group by clasa;
- select count(*) , floor(nota) from eleviacsl group by floor(nota);
– Gruparea datelor in manual doru –
- select count(*), left(nume,1) as ‘Prima Litera’ from eleviacsl group by left(nume,1);
- select count(*),clasa from eleviacsl group by clasa having clasa like '11%';
- Interogarile
- select * from (select clasa,count(*) as nr_elevi from eleviacsl group by clasa) as total_elevi
- select * from eleviacsl where nota=(select max(nota)from eleviacsl);
Relatii intre tabele: interogari de tip join(pg 112 carte doru)
- Relatii unu la unu-fix unei identitati ii apartine o materie
- Relatii one to many- unei identitati ii apartin mai multe materii
- Relatii many to many
- Primary key(nu se poate repeta codul)
- inner join(afiseaza doar daca exista corespondenta intre tabele): select cod,nume,titlu,cod_actor
from actori inner join filme on cod=cod_actor;
- left outer join(join intre 2 tabele-daca in tabel 1 e ceva ce nu are corespondent in tabel2, se afiseaza
si tabel2)select cod,nume,titlu,cod_actor from actori left outer join filme on cod=cod_actor;
- right outer join
- select clasa,max(nota) as nmax from eleviacsl group by clasa;
- select id,nume,eleviacsl.clasa from eleviacsl join(select clasa,max(nota) as nmax from eleviacsl
group by clasa) as maxime on eleviacsl.clasa=maxime.clasa and nota=nmax;
-

(Sa nu ai informații copiate dintr-un tabel in altul, cat mai putine(redundante))

1.11.2022

select upper(@ch) in ('A', 'E', 'I', 'O', 'U');

select distinct city from station where locate(left(city,1),"aeiouAEIOU")<>0 and


locate(right(city,1),"aeiouAEIOU")<>0;

Nu mere pe hackerrank dar e ok pt o pb pe mysql


set @a:=select min(lat_n) from station;
set @b:=select min(long_w) from station;
set @c:=select max(lat_n) from station;
set @d:=select max(long_w) from station;
set @dist=abs(@a-@c)+abs(@b-@d);
select round(@dist,4);

select round(abs((select min(lat_n) from station) - (select max(lat_n) from station)+abs((select min(long_w) from
station) - (select max(long_w) from station)),4);
=
SELECT ROUND(ABS(MIN(LAT_N) - MAX(LAT_N)) + ABS(MAX(LONG_W) - MIN(LONG_W)),4) FROM
STATION;

02.11.2022

select if (1=2,1,2); - functia if (daca 1=2,afish1,daca nu afish2)


(c[++k]=a[i]<b[j]?a[i++]:b[++j]; )

select nume,datan,if(datan>'2004-11-02','major','minor') from elevi;


select if(a+b<=c || a+c<=b || b+c<=a, "Not a triangle",if(a=b &&
b=c,"Equilateral",if(a=b ||b=c||a=c,"Isosceles","Scalene"))) from triangles;

select if(grade<8,NULL,name),students.grade,marks from students join grades on


marks>=min_mark and marks<=max_mark order by grade desc,name ;

Pt test: hackerrank:select,basicselect,agreggation,join

select distinct nume,min(media),length(min(nume)) from elevi;

select city,length(city) from station order by length(city) asc, city limit 1;


select city,length(city) from station order by length(city) desc, city limit 1;

select round(long_w,4) from station where lat_n=(select min(lat_n) from station where lat_n>38.770);

create table test(id int unique key auto_increment, nume text);


insert into test(nume) values (‘cici’);

04.11.2022

select replace (@a,'0',"");


select ceil(avg(salary)-avg(replace(salary,'0',""))) from employees;

c#
Fisiere
- Using system.IO
- deschidere: StreamWriter nume_var_fisier = new StreamWriter(“nume.extensie”);
- scriere: nume_var_fisier.Write(o singura expresie); (sau writeline)
- deschidere: StreamReader nume_var_fisier = new StreamReader(“nume.extensie”);
- citire: nume_var_fisier.ReadLine(); - citeste toata linia curenta ca string (le scoti tu din string)
- (using System;
- using System.Collections.Generic;
- using System.Linq; string[] s=fin.ReadLine().Split(new char[] { ' ' },StringSplitOptions.RemoveEmptyEntries);
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace sum
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- StreamReader fin=new StreamReader("sum.in");
-
- int a= int.Parse(s[0]);
- int b= int.Parse(s[1]);
- StreamWriter fout = new StreamWriter("sum.out");
- fout.WriteLine((a + b).ToString());
- fout.Close();
- }
- }
- }
-
- )

- Fisierele se creeaza in sbfolderul bin/debug , si acolo tre’ sa si salvezi filele pe care le deschizi
- while(!fin.EndOfStream){s=fin.ReadLine();Console.WriteLine(s);}

07.11.2022 PHP
15.11.2022 php
- Se deschide doar cu localhost/folder_unde_e_fisierul
<html>
<body bgcolor="lightyellow">
<?php
echo "Hello World<br>";
for ($i=1;$i<=100;$i++)
echo $i," ";
?>
</body>
</html>

16.11.2022
php- Php is a Hypertext Processor
contine cod
- echo = un fel de print din python
- request = citesc date, dupa ce le bag cu input dintr-un form
Tu nu vei vedea niciodata codul ci doar ce e afish prin echo
echo "<tr height=\"40\">"; sau echo ‘<tr height=”40">’;
echo '<td bgcolor="lightcyan">&nbsp;'; - &nbsp;= codul pentru spatiu
<form method(specifica metoda prin care trimite rezultatul:get=vezi clar in bara de sus valorile&post=nu arata valorile, ci
apl02.php
-daca in php
Apl02.html <body bgcolor="lightpink">
<form method="get" action="apl02.php">
a=<input type="text" name="casuta_a"><br><br>
b=<input type="text" name="casuta_b"><br><br>
<input type="submit" value="Calcul suma">
</form>
</body>
Apl02.php <body bgcolor="lightyellow">
<?php
$a=$_REQUEST["casuta_a"];
$b=$_REQUEST["casuta_b"];
echo "Suma dintre ",$a," si b ",$b," este: ",$a+$b;
?>
</body>
16.11.php <html>
<head><meta charset="utf-8"><title>Tabla de sah</title></head>
<body bgcolor="#ffcccc">
<br>
<table align="center" border="1" cellspacing="0" >
<?php

for($i=1;$i<=8;$i++)
{
echo "<tr height=\"50\" >";
for($j=1;$j<=8;$j++)
if(($i+$j)%2==0)
echo '<td bgcolor="bone" width="50">&nbsp;';
else
echo'<td bgcolor="lightyellow" width="50">&nbsp;';
}

?>
</table>
</body>
</html>

18.11.2022
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace pb01
{
internal class Program
{
static void Main(string[] args)
{
int sum = 0,i=0,x;
string[] s = Console.ReadLine().Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);//vector de stringuri
x = int.Parse(s[i++]);
while(x!= 0)
{
sum += x;
if(i>=s.Length)
{
s = Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
i = 0;
}
Console.WriteLine(sum);
x = int.Parse(s[i++]);
}
}
}
}

22.11.2022
<?php

$r=@$_REQUEST['raspuns'];

if(!isset($r))

echo "Nu ai ales niciun raspuns";

else

if($r==1)
echo "Raspuns corect";

else

echo "Raspuns gresit";

?>

@anuleaza, dezactiveaza warningurile de genul daca apesi butonul fara sa selectezi o optiune
<html>
<head>
<meta charset="utf-8">
</head>
<body bgcolor="lightyellow">
<form method="post" action="grila.php">
Verbul "a abroga" are unul din urmatoarele sensuri:<br><br>
<input type="radio" name="raspuns" value="1">
a anula o dispozitie oficiala<br>
<input type="radio" name="raspuns" value="2">
a scurta un document oficial<br>
<input type="radio" name="raspuns" value="3">
a imbunatati o lege<br>
<input type="radio" name="raspuns" value="4">
a aborda un subiect<br>
<br>
<input type="submit" value="verifica raspuns" name="answered">

<br><hr>

<?php
if(@$_REQUEST['answered']!==NULL)
{
$r=@$_REQUEST['raspuns'];
if(!isset($r))
echo "Nu ai ales niciun raspuns";
else
if($r==1)
echo "Raspuns corect";
else
echo "Raspuns gresit";
}
?>
</form>
</body>
</html>

Intr-un singur program

06.12.2022
<?php

$r1=@$_REQUEST['r1'];
$r2=@$_REQUEST['r2'];
$r3=@$_REQUEST['r3'];
$r4=@$_REQUEST['r4'];
$r5=@$_REQUEST['r5'];
$r6=@$_REQUEST['r6'];
$r7=@$_REQUEST['r7'];
if(isset($r1))
echo "r1 a fost bifat<br>";
else
echo "r1 nu a fost bifat<br>";
if(isset($r2))
echo "r2 a fost bifat<br>";
else
echo "r2 nu a fost bifat<br>";
if(isset($r3))
echo "r3 a fost bifat<br>";
else
echo "r3 nu a fost bifat<br>";
if(isset($r5))
echo "r5 a fost bifat<br>";
else
echo "r5 nu a fost bifat<br>";
if(isset($r4))
echo "r4 a fost bifat<br>";
else
echo "r4 nu a fost bifat<br>";
if(isset($r6))
echo "r6 a fost bifat<br>";
else
echo "r6 nu a fost bifat<br>";
if(isset($r7))
echo "r7 a fost bifat<br>";
else
echo "r7 nu a fost bifat<br><br>";
if(isset($r2)&&isset($r5)&&isset($r6))
echo "Răspuns corect<br>";
else
echo "Răspuns greșit";
?>
<meta charset ="utf-8">
Care dintre următoarele valori reprezintț o soluție a ecuației:<br>
x<sup>2</sup>=4<br>
<br>
<form method="post" action="ap1.php">
<input type ="checkbox" name="r1">3<br>
<input type ="checkbox" name="r2" checked>-2<br>
<input type ="checkbox" name="r3">2.5<br>
<input type ="checkbox" name="r4">3<br>
<input type ="checkbox" name="r5">ln(e)+sin<sup>2</sup>(x)+
cos<sup>2</sup>(x)<br>
<input type ="checkbox" name="r6">2<br>
<input type ="checkbox" name="r7">1<br>
<input type="submit" value="verifică răspunsuri">
</form>
<?php

$n=$_REQUEST['n'];
$rbv=$_REQUEST['rbv'];
$p=1;
$z=0;
while($n>0)
{
$c=$n%10;
$n=(int)($n/10);
if($c%$rbv==0)
{
$z=$z+$p*(9-$c);
$p=$p*10;
}

}
echo "$z";

?>
<meta charset="utf-8">
<form method="post" action="ap2.php">
Introdu o valoare pentru n:
<input type="text" name="n"><br>
Introdu valoarea divizorului rbv:
<input type="radio" name="rbv" value="2">2
<input type="radio" name="rbv" value="3" checked>3
<br><br>
<input type="submit" value="rezolvă"><br>
</form>

07.12.2022
<meta charset="utf-8">
Alege tipul de pizza:
<form method="post" action="apl1.php">
<select name="tip">
<option value="1">Ananas și salam vegetal
<option value="2">Ton cu magiun de prune
<option value="3">Corsicană cu Casu Marzu
<option value="4">Fugu cu sângerete
</select><br><br>
<input type="submit" value="Trimite comanda" name="trimite">
</form>
<?php
if(isset($_REQUEST['trimite']))
{
$pret=array(17.25,21.99,29.99,25);
$tip=$_REQUEST['tip'];
echo "costă ",$pret[$tip-1];
}
?>
<meta charset="utf-8"><body bgcolor="lightyellow">
Alege tipul de <i>beveraje</i>: (dacă vrei mai multe, alegi cu CTRL)<br><br>
<form method="post" action="apl2.php">
<select name="tip[]" multiple size="6">
<option value="1">Cafia
<option value="2">Ceai
<option value="3">Cappucino
<option value="4">Frappe
<option value="5">Latte
<option value="6">Chocolat chaud
<option value="7">Sake
<option value="8">Chartreuse
<option value="9">Corett
</select><br><br>
<input type="submit" value="Trimite comanda" name="trimite">
</form>
<?php
if(isset($_REQUEST['trimite']))
{

$tip=$_REQUEST['tip'];
///s-a trimis un array pe care il afisam
foreach($tip as $indice=>$valoare )
echo $indice," ",$valoare,"<br>";
///for($i=0;&i<count($tip);$i++)
///echo $tip[$i],"<br>";
}
?>
</body>
<meta charset="utf-8">
<form method="post" action="apl3.php">
Introdu 4 valori:<br>
<input type="text" name="a[1]"><br>
<input type="text" name="a[2]"><br>
<input type="text" name="a[3]"><br>
<input type="text" name="a[4]"><br>
<input type="submit" value="testeaza" name="b">
<?php
if(isset($_REQUEST['b']))
{
$a=$_REQUEST['a'];
for($i=1;$i<=4;$i++)
echo $a[$i],"<br>";
}
?>

09.12.2022
Inv:
- Ordinul de complexitate
Count 5 (pbinfo)
n=int.parse(console.readline)
String [] s= console.readline…split
Int nr[]=new int[82];
for(i=1;i<=n;i++)
{
if(ic==s.length)
{s=console.readline().split(new char……
ic=0;}
x=int.parse(s[ic++]);
sc=0;
Do
{
sc+=x%10;
x/=10;
}while(x!=0)
nr[sc]++;
}
Int64 rez=0;
for(x=0;x<=81;x++)
{rez+=(int64).parse(nr[x]+(nr[x]-1)/2;}
console.writeline(rez);

12.12.2022
<meta charset="utf-8">
<?php
ob_get_contents();
ob_end_clean();
$nume=@$_FILES['fishier']['name'];
if(isset($nume))
{
echo "numele fishierului uploadat:",$nume,"<br><br>";

$tmpnume=$_FILES['fishier']['tmp_name'];
echo "pe server fishierul a fost uploadat ca si ",$tmpnume,"<br><br>";

$tip=$_FILES['fishier']['type'];
echo "tipul fishierului incarcat: ",$tip,"<br><br>";

$marime=$_FILES['fishier']['size'];
echo "dimensiuneafishierului incarcat: ",$marime,"<br><br>";

$eroare=$_FILES['fishier']['error'];
echo "codul de eroare in urma incarcarii: ",$eroare,"<br>";
if($eroare!=0)
echo "a aparut o eroare la upload";
else
{
//mut fishierul incarcat intr-o locatie definitiva, pt ca fish se pune in tmp natural
move_uploaded_file($tmpnume,"fishiereincarcate/".$nume);
}
}
else
echo "a aparut o eroare la upload";
?>
<meta charset="utf-8">
<form enctype="multipart/form/data" method="post" action="apl01.php">
<input type="file" name="fishier"><br><br>
<input type="hidden" name="MAX_FILE_SIZE" value="30000"><br>
<input type="submit" value="incarca fisierul">
</form>

10.01.2023

Import: - mergi in folderul unde e cd:c\work cd: doru cd:23_10_10


- mysql work -u mysql -p < elevi.sql
php.net/manual/en/book - php,mysql manual

Conectare php cu mysql: -<?php


$conexiune=mysqli_connect("localhost","mysql","mysql","work");
if($conexiune===false)
{
echo "cv nu merge";
return;
}
$interogare=mysqli_query($conexiune,"select * from elevi");
echo "<table border cellpadding=\"10\">";
while($sir=mysqli_fetch_array($interogare))
{
echo "<tr><td>",$sir[0],"<td>",$sir[1],"<td>",$sir[2],"<td>",$sir[3],"<td>",$sir[4];
echo "<br>";
}
?>
11.01.2023
- Securitate: - parolele se “mascheaza” prin encriptare , si pt asta se folososte javascript ,
- <html>
- <head>
- <title>Codare parola</title>
- <script src="sha1.js"></script>
- <script>
- function codeaza_parola()
- {
- /alert ("codare parola");
- parola=getElementsById("pass");
- codare=calcSHA1(parola.value);
- / alert (codare);
- parula.value=codare;
- }
- </script>
- </head>
- <body>
- <form method="post" action="auth.php">
- Username: <input type="text" name="user"><br><br>
- Password: <input type="password" name="pass" id="pass"><br><br>
- <input type="submit" value="autentificare" onclick="codeaza_parola();">
- </body>
- </html>
- Instaleaza biblioteca sha1
-
20.01.2023
cd work
cd xampp
cd htdocs
cd works
cd 2023.01.20
mysql work -u mysql -p < backup_quizz.sql
31.01.2023

Probleme atestat c++


1. Sunt mai mari de long long, nu pot fi citite ca numere asa ca trebuie citite ca stringuri. , cand le adunam va trebui sa
avem grija sa tratam depasirea(peste 9 pt ca le adunam una sub alta)(dpdv al organizarii datelor, se lucreaza mult mai
usor daca inversam numerele)
- #include <iostream>
- #include <cstring>
- #include <fstream>
- using namespace std;
-
- char s[51];
-
- struct numar
- {
- char cif[51];///char e mai eficient ca int pt ca sa nu ocupe foarte mult spatiu
- int nc;
- }a,b,c;
- ///ce nu ppoate sa intoarca o functie(adica return): tablouri
- /*void atribuie(numar &a,char s[])
- {
-
- }*/
-
- numar string_to_numar(char s[])
- {
- numar x;
- x.nc=strlen(s);int k=0;
- for(int i=x.nc-1;i>=0;i--)
- {
- x.cif[k++]=s[i]-'0';///x.cif[x.nc-1-i]=s[i]-'0';
- }
- }
-
- int main()
- {
- ifstream fin("numere.in");
- ofstream fout("numere.out");
- fin>>s;
- a=string_to_numar(s);
- fin>>s;
- b=string_to_numar(s);
- //adunarea:
- c.nc=max(a.nc,b.nc);
- //padam nr mai mic cu 0uri pana la lungimea lui nc
- int i,t;///t=transport-variabila in care tinem valoarea depasirii la pasul curent
- for(i=a.nc;i<c.nc;i++)a.cif[i]=0;
- for(i=b.nc;i<c.nc;i++)b.cif[i]=0;
- //din for-urile de mai sus se executa ori unul ori niciunul, niciodata ambele
- for(i=0;i<c.nc;i++)
- {
- c.cif[i]=(a.cif[i]+b.cif[i]+t)%10;
- t=(a.cif[i]+b.cif[i]+t)/10;
- }
- if(t)c.cif[c.nc++]=t;//aici punem extra transportul daca e cazul, ce e in plus
- for(i=c.nc-1;i>=0;i--)
- {
- cout<<c.cif[i];
- }
- return 0;
- }
-
- ////trebuie verificat cu al lui doru

2. Un polinom de grad n are n+1 termeni; cand faci suma a doua polinoame(chichita:daca adun un polinom de grad n si
unul de grad m, gradul polinomului suma va fi gradul mai mare(usually) pt ca se pot anula termenii(sa se scada) si atunci scade
gradul polinomului suma=>tre’ sa ai grija)
- #include <iostream>

#include <fstream>
using namespace std;

struct polinom
{
int gr;//gradul
double c[51];//coeficient
}a,b,c;

int main()
{
ifstream fin("pol.in");
fin>>a.gr>>b.gr;
int i;
for(i=0;i<=a.gr;i++)
{
fin>>a.c[i];
}
for(i=0;i<=b.gr;i++)
{
fin>>b.c[i];
}
//estimam gradul sumei:
c.gr=max(a.gr,b.gr);///(pt la bac tre sa scri asta:)am folosit functia max care face maximul dintre doua valori
//padam cu 0uri polinomul de grad mai mic
for(i=a.gr+1;i<=c.gr;i++)
a.c[i]=0;
for(i=b.gr+1;i<=c.gr;i++)
b.c[i]=0;
//suma:
for(i=0;i<=c.gr;i++)
{
c.c[i]=a.c[i]+b.c[i];
}
//ajustam gradul maxim daca e cazul
while(c.gr>0 && c.c[c.gr]==0)c.gr--;
//afisham
cout<<c.gr<<"\n";
for(i=0;i<=c.gr;i++)
cout<<c.c[i]<<" ";
return 0;
}

3. #include <iostream>
#include <fstream>
using namespace std;

struct polinom
{
int gr;//gradul
double c[51];//coeficient
}a,b,c;

int main()
{
ifstream fin("pol.in");
ofstream fout("pol.out");
fin>>a.gr>>b.gr;
int i;
for(i=0;i<=a.gr;i++)
{
fin>>a.c[i];
}
for(i=0;i<=b.gr;i++)
{
fin>>b.c[i];
}
//estimam gradul sumei:
c.gr=a.gr+b.gr;
//produs:(atunci cand combinam 2 coeficienti de la gradele i din primul polinom cu j din al doilea, produsul celor 2 contribuie la coeficientul de grad i+j din produs =>
//initializam polinomul produs cu 0, luam fiecare coef din primul cu fiecare din al 2lea si adunam produsele lor in ppolinomul produs
for(i=0;i<=c.gr;i++)
c.c[i]=0;
for(i=0;i<=c.gr;i++)
{
for(j=0;j<=b.gr;j++)
c.c[i+j]+=a.c[i]*b.c[i];
}
//ajustam gradul maxim daca e cazul
while(c.gr>0 && c.c[c.gr]==0)c.gr--;
//afisham
fout<<c.gr<<"\n";
for(i=0;i<=c.gr;i++)
fout<<c.c[i]<<" ";
return 0;
}

—pe site–

01.02.2023
-//distincte 2 cate 2 vs distincte:oricum ai lua 2 elem, ele nu se repeta vs se poate sa fie acelasic caracter de mai multe ori dar
diferit de altele
#include <iostream>
#include <fstream>

using namespace std;

int a[50],b[50],c[50];

int main()
{
ifstream fin("mult.in");//un fisier se mai poate deschide:fstream fin("mult.in",ios::in), fout("mult.out",ios::out);
///ofstream fout("mult.out");
int n,m,i,j,p=0;
fin>>n>>m;
for(i=0;i<n;i++)fin>>a[i];
for(i=0;i<m;i++)fin>>b[i];
for(i=0;i<n;i++)
{
j=0;
while(j<m&&a[i]!=b[j])
{
j++;
}
//daca la oprire j<m adev => whileul nu s-a oprit din cauza ei => s-a gasit
if(j<m)
c[p++]=a[i];
}
if(p==0)cout<<"Multimea vida";
else for(i=0;i<=n;i++)cout<<c[i]<<" ";
return 0;
}
09
#include <iostream>
#include <fstream>
using namespace std;
int a[50],n,i,imin,aux;
int main()
{
fstream fin("mult.in",ios::in), fout("mult.out",ios::out);
fin>>>n;
for(i=0;i<n;i++)fin>>a[i];
for(i=0;i<n-1;i++)
{//la fiecare pas alegem minimul dintre indicii i si n si la final il interschimbam cu elementul de pe indicele i
imin=i;
for(j=i+1;j<n;j++)
if(a[j]<a[imin])imin=j;
aux=a[i];
a[i]=a[imin];
a[imin]=aux;
}
for(i=0;i<n;i++)fout<<a[i]<<" ";
return 0;
}

03.02.2023
Pb 10&11 o iei de pe site(01.02&03.02)
- Legat de vectorii de numarare: sa faci un min si un max ca in for sa nu mergi de la -9999 la 9999 ci de la min sau max, nu o fa pt
ca favorizeaza niste cazuri particulare si incetinesc algoritmul din cauza acelor if-uri in plus
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("cmmdc.in");
ofstream fout("cmmdc.out");
int cmmdc(int a,int b)
{
while(b)
{
int r=a%b;a=b;b=r;
}
return a;
}

int main()
{
int n,i,rez=0,x;
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x;
rez=cmmdc(rez,x);
}
fout<<rez;
return 0;
}

#include <iostream>
#include <fstream>
using namespace std;
int nrdiv(int n)
{
int nr=0,d;//sa declari d-ul aici ca sa fie valabil pe toata functia nu doar in for
for(d=1;d*d<n;d++)
if(n%d==0)nr+=2;
if(d*d==n)nr++;
return nr;//descompui in factori primi, iei puterile factorilor si le inmultesti
}
//problema de scvente<=> sa verificam daca exista cel putin o secventa formata din cel putin 3 valori consecutive si pt asta vom folosi un contor care, daca elem curent e = cu cel precedent se implementeaza, daca nu se reseteaza la 1
int main()
{
ifstream fin("exista.in");
int n,i,ok=0,nrd_ant=-1/*pt ca daca bagam 0 iese 0 numar de divizori*/,nrd_crt,cnt;
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x;
nrd_crt=nrdiv(x);
if(nrd_crt==nrd_ant)cnt++;
else cnt=1;
if(cnt==3)ok=1;
nrd_ant=nrd_crt;
}
if(ok==1)cout<<"DA";
else cout<<"NU";
return 0;
}

06.02.2023
#include <iostream>
#include <fstream>

using namespace std;


ifstream fin("prietene.in");
//ofstream fout("prietene.out");

/*int prim(int x)
{
if(x<2||x>2&&x%2==0)return 0;
for(int d=3;d*d<=n;d+=3)
if(x%d==0)return 0;
return 1;
}*/
bool ciur[3001];

int main()
{
int n,i,x;
fin>>n;
ciur[0]=ciur[1];
for(x=2;x*x<=n;x++)
{
for(i=2;i*x<=n;i++)
ciur[1*x]=1;

}
cout<<"(2,3) ";
for(x=3;x+2<=n;x+=2)
if(!ciur[x]&&)

return 0;
}

07.02.2023
Atestat pb 18
#include <iostream>
using namespace std;
int nr_div(int x)
{ int d=2,p,nrd=1;
while(d*d<=x)
{
p=0;
while(x%d==0)
{
x/=d;
p++;
}
nrd*=(p+1);
d++; }
if(x>1)nrd*=2;
return nrd;}
int main()
{
int n=1,k;
cin>>k;
while(nr_div(n)!=k)n++;
cout<<n;
return 0;
}

10.02.2023
ATESTAT24
#include <iostream>
#include <fstream>
using namespace std;

fstream f;
int a[51][51],b[51][51],c[51][51];

int main()
{
int i,j,k,m,n,m1;
f.open("mat1.in",ios::in);
f>>n>>m;
for(i=1; i<=n; i++)for(j=1; j<=m; j++fin>>a[i][j];
f.close();
f.open("mat2.in",ios::in);
f>>m1>>p;
for(i=1; i<=m1; i++)for(j=1; j<=p; j++fin>>b[i][j];
f.close();
f.open("mat.out",ios::out);
if(m!=m1)f<<"matricele nu se pot inmulti";
else
{
{

for(i=1; i<=n; i++)


for(j=1; j<=p; j++)
{
c[i][j]=0;//urmeaza sa fie o suma
for(k=1; k<=m; k++)
c[i][j]+=a[i][k]*b[k][j];
f<<c[i][j]<<" ";
}
f<<"\n"
}
}
return 0;
}

Atesstat25
#include <iostream>
#include <fstream>
ifstream fin("mat.in");
ofstream fout("mat.out");
using namespace std;
int a[51][51],maxl[51],minc[51];
int main()
{
int n,m,i,j;
fin>>n>>m;//initializam vectorul cu maximele cu o valoare foarte mica fata de valorile ce pot fi asa ca se va lua -1000000
for(i=1;i<=n;i++)maxl[i]=-100000000;
for(j=1;j<=m;j++)minc[j]=100000000;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
fin>>a[i][j];
if(a[i][j]<minc[j])minc[j]=a[i][j];
if(a[i][j]<maxl[i])maxl[i]=a[i][j];
}
//reparcurgem ca sa verificam care sunt sa
int nr_sa=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==minc[j]&&a[i][j]==maxl[i])
{
cout<<a[i][j]<<"la coordonatele: "<<i<<" "<<j<<"\n";
nr_sa=1;
}
if(!nr_sa)cout<<"nu exista";

return 0;
}

Atestat26
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("mat.in");
ofstream fout("mat.out");
int a[2501];

int nr_div(int x)
{

int d, nrd=0;
for(d=1; d*d<x; d++)
if(x%d==0)
nrd+=2;
if(d*d==x)nrd++;
return nrd;
}
int main()
{
int n,m,i,j,x,mx=0,nr=0 ;
fin>>n>>m;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
{
fin>>x;
nrd=nr_div(x);
if(nrd>mx)
{
mx=nrd;
a[nr=1]=x;

}
else if(nrd==mx)
a[++nr]=x;
}
for(i=1; i<=nr; i++)cout<<a[i]<<" ";
return 0;
}

c#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace newcsharp
{
public partial class Form1 : Form
{
Bitmap b;
Graphics g;
public Form1()
{
InitializeComponent();
}

private void Form1_Load_1(object sender, EventArgs e)


{
b = new Bitmap(pictureBox1.Width, pictureBox1.Height);
g = Graphics.FromImage(b);
pictureBox1.Image = b;

private void button2_Click(object sender, EventArgs e)


{
g.DrawLine(new Pen(Color.Pink, 4), 100, 100, 400, 300);
/// g.DrawPie(new Pen(Color.AntiqueWhite, 4), Rectangle rect, 200, 400) ;
g.DrawEllipse(new Pen(Color.LightPink, 2), 150, 100, 200, 200);
g.DrawEllipse(new Pen(Color.AntiqueWhite, 2), 150, 150, 200, 100);
g.DrawEllipse(new Pen(Color.LightGoldenrodYellow, 3), 200,100, 100, 200);
pictureBox1.Refresh();
}

private void pictureBox1_Click(object sender, EventArgs e)


{

}
}
}

13.02.2023

06.03.2023
Pb32 atestat
- General sirul lu fibonacci pana da de b
- while(t2<b){tc=t1+t2;t1=t2;t2=tc;}if(t1==a&&t2==b)cout<<”da”;
Pb 33 atestat
- O functie cu suma cifrelor
- for(i=1;i<=n/2;i++){if(sumc(a[i])==sumc(a[n-i+1])){cout<<a[i]<<” “<<a[n-i+1]<<”\n”;ok=1;}}if(!ok)cout<<”nu”;
Pb34
- Fuctie palindrom sa ver daca e
- Apoi bagi un strtok cu care mergi prin string printre cuvinte si le verifici cu functia
Pb35
- Cuvintele le ia fiecare cu fiecare si daca se gasesc 2 nu le afish si invers
- Trebuie sa facem un vector cu cuvintele separate///adica un vecto de vectori adica o matrice
- Functie sa verif daca ult 2 litere coincid
- char cuv[128][256],s[256],*p;
- for(p=strtok(s,” “);p;p=strtok(NULL,” “)){strcpy(cuv[++nc],p);}
- Apoi ver cu for pe for + folosesti functia

07.03.2023
Pb36
- secventa=subsir in stringuri la info
- Contor care sa arate lungimea secventei curente; contorul : ai 2 chestii ori il cresti(cand regulile convin) ori il
resetezi
- Determinam maximul contorului si indicele unde se termina secventa, ca dupa sa scazi tot pana la ea si
inainte de ea
- for(i=0;s[i];i++)//s[i] inseamna s[i] diferit de 0
- {
- if(isdigit(s[i]))
- cont++;
- else
- cont=0;
- if(cont>cmax){cmax=cont;imax=i;}
- }
- if(cmax==0)cout<<"Nu exista";
- else
- for(i=imax-cmax+1;i<=imax;i++)
- cout<<s[i];
Pb37
- Tocanita de stringuri ca la pb 35,dar se mai baga un strcmp
Pb38
- Este ca 37
Pb39
- Este interclasare pt ca snt sirurile pse in ordine crescatoare
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
//ifstream fin("text.in");

//pb39 char a[8][26],b[8][26];


/*pb40
int bisect (int an)
{
return (an%4==0&&an%100!=0||an%400==0);
}
int valid(int z,int l, int a)
{
if(z<1||l<1||l>12)
return 0;
int nzl;//nzl=numarul de zile din luna l al anului a
if(l==2)
if(bisect(a))nzl=29;
else nzl=28;
else
if(l==4||l==6||l==11||l==9)nzl=30;
else nzl=31;
if(z>nzl)return 0;
return 1;
}
*/
int main()
{
/*pb36
char s[256];
fin.getline(s,256);
int cont=0,cmax=0,imax,i;
for(i=0;s[i];i++)//s[i] inseamna s[i] diferit de 0
{
if(isdigit(s[i]))
cont++;
else
cont=0;
if(cont>cmax){cmax=cont;imax=i;}
}
if(cmax==0)cout<<"Nu exista";
else
for(i=imax-cmax+1;i<=imax;i++)
cout<<s[i];
*/
/*pb37
char s[256],cuv[128][256],*p;
fin.getline(s,256);
int nc=0,i,j,ok=0;
for(p=strtok(s," ");p;p=strtok(NULL," "))
strcpy(cuv[++nc],p);
for(i=0;i<c;i++)
for(j=i+1;j<=nc;j++)
if(strlen
*/
//pb38 ca 37
/*pb39
int i,j;
for(i=1;i<=7;i++)
{
fin.getline(a[i],26);
}
fin.close();
fin.open("y.txt");
for(i=1;i<=7;i++)
{
fin.getline(b[i],26);
}
i=1;j=1;
while(i<=7&&j<=7)
{

if(strcmp(a[i],b[j])<0)
cout<<a[[i++]<<" ";
else
if(strcmp(b[i],a[j])<0)
cout<<b[[j++]<<" ";
else
{
cout<<a[i++]<<" ";
j++;
}
}
while(i<=7)cout<<a[i++]<<" ";
while(j<=)

*/
/*pb40
int d1,m1,y1,d2,m2,y2;
cin>>d1>>m1>>y1>>d2>>m2>>y2;
if(!valid(d1,m1,y1)||!valid(d2,m2,y2))cout<<"DATA INVALIDA";
else{
int v=y2-y1;
if(m1>m2||m1==m2&&d1>d2)v--;
}
cout<<v;
*/
return 0;
}

08.03.2023
Word atestat
- In word se download de pe site acel fishier pt editat

10.03.2023
C:\Work>mysql -u mysql -p work < atestat.sql
Enter password: *****

C:\Users\elev>cd \work

C:\Work>dir

13.03.2023
mysql baza_date -u utilizator -p < nume_backup.sql
update admitere set media= floor((proba1+proba2+0.00001)/2*100)/100,
rezultat='respins';
update admitere set rezultat='admis' where proba1>=5 and proba2>=5 order by
media desc limit 20;

3.04.2023
Aritmetică binară și algoritmi
- abcdef(2)=a*2la5 +b*2la4+c*2la2+e*2la1+f
Unde cifrele sunt 0 sau 1.
Deci,fiecare putere a lui 2 poate sau apara sau nu
⇔uniciteatea descompunerii unui nr nat in suma de puteri ale lui 2
Transf. din baza 10 in baza 2 => ne luam puteri ale lui 2 de la cea mai mare putere cuprinsa in nr catre puteri mai
mici si pe cele care intra in descompunere le scadem
Ex.:169
128 64 32 16 8 4 2 1

1 0 1 0 1 0 0 1
169-128=41-32=9=8+1

Operațiile pe biți
Shiftare
- La stanga se face prin a<<b. Semnficatia: a se deplaseaza la stanga cu b biti. (se pune in paranteze ca sa nu
fie ppb cu prioritatile operatiilor) a<<b ⇔ a*2lab (b=(a<<3+a<<1) <=> b=a*10)
- La dreapta se face prin a>>b. Semnificatia: a se deplaseaza la dreapta cu b biti. a>>b ⇔ a/2lab
- 1<<31 ⇔ INT_MAX+1(pt ca int_max este cu toti bitii 1)
Negația
- ~valoare (valorile int fiind repr in cod complementar, rezultatul contine si bitu de semn si aferente
Conjuncția
- Se face operația și bit cu bit
- Ex.: 23 &17 = 10111 &10001=10001=17
Disjuncția exclusivă
- Se face operatia xor bit cu bit
Disjuncția clasică
- Se face operatia sau bit cu bit

04.04.2023
Componente tari conexe:
- Graf conex= poti ajunge de oriunde in oriunde
- Subgraf tare conex(se poate ajunge din orice nod in orice alt nod) maximal cu aceasta proprietate
-
Graf orientat=complet => orice 2 noduri sunt adiacente (nu conteaza directia, nu conteaza daca e de la a la b sau
invers sau amandoua)
- Minim m*(n-1)/2 arce
- Maxim n*(n-1) arce

pentru contor <- li, lf executa ///cresc


pentru contor <- li, lf, -1 executa ///descrescator
Graf eulerian:
- Contine un ciclu eulerian, adica un ciclu care trece prin toate muchiile
- (intr-un ciclu nu avem voie sa repetam muchii)
- ⇔ (fara nodurile izolate) este conex si are gradurile nodurilor pare

-
-
19.04.2023
Test 14.02.2023
Pb cu vectori si de inlocuit secv de 0-uri cu un singur 0
- Metoda stergerii element cu element: la gasirea a 2 de 0 vecini, il stergem pe unul dintre ei insa ramanem in
acelasi loc
- void elimina(int &n//pt ca se schimba/// , int v[51])
- {
int i,j;
for(i=2;i<=n;i++)
if(v[i-1]==0&&v[i]==0)
{
for(j=i;j<n;j++)
v[j]=v[j+1];
n–;i–;
}
}
- Eficient: ne facem ca formam un vector nou dar punem elementele in acelasi vector, acest lucru e posibil in cazul in
care stergem. In vectorul nou plasam neconditionat a[1]; parcurgem vectorul dat si adaugam a[i] doar daca el si
precedentul nu sunt ambele 0
- void elimina1(int &n, int v[])
{
int i,k=1;
for(i=2;i<=n;i++)
if(v[i-1]||v[i]) //adica v[i]diferitde0sauv[i-1[ diferit de 0
v[++k]=v[i];
n=k;
}
Stringareala: se da un string doar litere mici si un sablon doar litere mici si *. Sa se determine un subsir din sirul dat care
corespunde sablonului. (Tractoreste, nu are sens altfel)
char a[31],b[31];
cin>>a>>b;//se poate folosi citirea asta cand nu avem spatii in siruri
int i,j,n=strlen(a),m=strlen(b):
for(i=0;i<=n-m;i++)
{
ok=1;//pp ca e bn
for(j=0;j<m;j++)
if(b[j]!=’*’&&b[j]!=a[i+j])//daca e un singur caracter se scrie intre apostrofuri nu
ghilimele
{ok=0;break;}
if(ok==1)
{
for(j=0;j<m;j++)cout<<a[i+j];
break;
}
if(ok==0)cout<<”imposibil”;
}
Citirea se face pe o singura repetitiva, fals ⇔ datele se citesc o singura data
- Dpdv al timpului de executare pt ca face putini pasi deoarece datele de intrare sunt parcurse o singura data. Dpdv al
memoriei deoarece utilizam doar cateva variabile simple

Pb cu string: string cu max 255 de caractere cu maxim 30 de litere fiecare cuv, separate prin cate un spatiu. Sa se trans toate
literele mici in mari si sa se construiasca in memorie o fraza formata din aceleasi cuvinte puse in ordine alfabetica.[ex.: In
Spain the rain stays mainly in the plane. Rasp.: IN IN PLANE MAINLY SPAIN STAYS THE THE]
char s[256],cuv[130][31],*p,aux[31];
int nc,i,j;
cin..getline(s,256);
///facem tot stringul in uppercase:
for(i=0;s[i];i++) s[i]=toupper(s[i]);
for(p=strtok(s,” “);p;p=strtok(NULL,” “))
strcpy(cuv[++nc],p);
for(i=1;i<nc;i++)
for(j=i+1;i<=nc;j++)
if(strcmp(cuv[i],cuv[j])>0)
{
strcpy(aux,cuv[i]);
strcpy(cuv[i],cuv[j]);
strcpy(cuv[j],aux);
}
s[0]=0; ///asta e la fel cu strcpy de s si sirul vid(s,””)
for(i=1;i<=nc;i++)
{
strcat(s,cuv[i]);
strcat(s,” “);
}
cout<<s;

25.04.2023
- p=strtok(s,” “)
- Daca facem strcpy(p,”dd”); e ok si atat timp cat ce e intre “” e mai mic cu 1 decat cat de lung e p-ul, si se inlocuieste p-
ul cu ce e intre “”
- Char s[101,*p,rez[101]=””;
- Int i, ok=0;
- cin.getline(s,101);
- for(p=strtok(s,” “);p;p=strtok(NULL,” “))
- {
- Int n=strlen(p);
- if(n>=3 && n%2)
- {
- for(i=n/2;i<n;i++)
- p[i]=p[i+1];

- }
- }
26.04.2023
- Graf complet de la a la b se poate / graf tare conex de la a la b se poate de la b la c la a se poate
-
28.04.2023
-
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000
0000000

You might also like