<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.algopedia.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=Clasa_a_IX-a_lec%C8%9Bia_10</id>
	<title>Clasa a IX-a lecția 10 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.algopedia.ro/wiki/index.php?action=history&amp;feed=atom&amp;title=Clasa_a_IX-a_lec%C8%9Bia_10"/>
	<link rel="alternate" type="text/html" href="https://www.algopedia.ro/wiki/index.php?title=Clasa_a_IX-a_lec%C8%9Bia_10&amp;action=history"/>
	<updated>2026-04-13T17:52:23Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.algopedia.ro/wiki/index.php?title=Clasa_a_IX-a_lec%C8%9Bia_10&amp;diff=17018&amp;oldid=prev</id>
		<title>Bella: /* Laborator */</title>
		<link rel="alternate" type="text/html" href="https://www.algopedia.ro/wiki/index.php?title=Clasa_a_IX-a_lec%C8%9Bia_10&amp;diff=17018&amp;oldid=prev"/>
		<updated>2019-12-09T23:42:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Laborator&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Instrucțiunea for ==&lt;br /&gt;
Precum am văzut în exemplele anterioare de multe ori avem nevoie să executăm o buclă WHILE-DO de &amp;lt;tt&amp;gt;n&amp;lt;/tt&amp;gt; ori, folosind un contor. Aceasta este un tip particular de buclă WHILE-DO, și anume o &amp;#039;&amp;#039;buclă cu număr cunoscut de pași&amp;#039;&amp;#039;. Pentru acest tip de bucle limbajul C ne permite o prescurtare, folosind instrucțiunea &amp;#039;&amp;#039;for&amp;#039;&amp;#039;.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Schemă logică&lt;br /&gt;
!Implementare cu &amp;#039;&amp;#039;while&amp;#039;&amp;#039;&lt;br /&gt;
!Implementare cu &amp;#039;&amp;#039;for&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Image:sl-bucla-for.gif]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&amp;lt;syntaxhighlight&amp;gt; i = 0;&lt;br /&gt;
 while ( i &amp;lt; n ) {&lt;br /&gt;
   ... execută corpul&lt;br /&gt;
       buclei...&lt;br /&gt;
   i = i + 1;&lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&amp;lt;syntaxhighlight&amp;gt; for ( i = 0; i &amp;lt; n; i++ ) {&lt;br /&gt;
   ... execută corpul&lt;br /&gt;
       buclei...&lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Mecanism: ===&lt;br /&gt;
* Pasul 1: Se executa initializarea &lt;br /&gt;
* Pasul 2: Se testeaza conditia. Daca conditia este adevarata atunci trecem la pasul 3. Daca conditia este falsa se trece la pasul 5&lt;br /&gt;
* Pasul 3: Se executa pachetul de instructiuni “Prel” &lt;br /&gt;
* Pasul 4: Se executa incrementarea si se revine la pasul 2&lt;br /&gt;
* Pasul 5: Stop&lt;br /&gt;
&lt;br /&gt;
=== Aplicatie - Suma primelor n numere naturale ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    ///declaram 2 variabile de tip FILE*&lt;br /&gt;
    FILE *fin, *fout;&lt;br /&gt;
    ///vom asocia var. de tip file, 2 fisiere externe&lt;br /&gt;
    fin = fopen(&amp;quot;date.in&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
    fout = fopen(&amp;quot;date.out&amp;quot;, &amp;quot;w&amp;quot;);&lt;br /&gt;
    int n, i;&lt;br /&gt;
    long long s;&lt;br /&gt;
    ///citim din fisier datele de intrare&lt;br /&gt;
    fscanf(fin, &amp;quot;%d&amp;quot;, &amp;amp;n);&lt;br /&gt;
    ///calculam suma primelor n numere&lt;br /&gt;
    s = 0;&lt;br /&gt;
    for(i = 1; i &amp;lt;= n; i++ )&lt;br /&gt;
      s = s + i;&lt;br /&gt;
    ///afisam rezultatul in fisierul de iesire&lt;br /&gt;
    fprintf(fout, &amp;quot;%lld&amp;quot;, s);&lt;br /&gt;
    fclose(fin);&lt;br /&gt;
    fclose(fout);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Șirul lui Fibonacci ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Definiție&amp;#039;&amp;#039;&amp;#039;: șirul lui Fibonacci este secvența de numere 0, 1, 1, 2, 3, 5, 8, 13... Regula acestei secvențe este că primele două numere sînt 0 și 1, iar următoarele numere sînt suma celor două numere din-naintea lor. &amp;#039;&amp;#039;&amp;#039;Exercițiu&amp;#039;&amp;#039;&amp;#039;: dat n, să se calculeze al n-lea termen din șirul lui Fibonacci.&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:sl-secventa-fibonacci.gif|frame|none|Șirul lui Fibonacci]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&amp;lt;syntaxhighlight&amp;gt; #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 int main() {&lt;br /&gt;
   FILE *fin, *fout;&lt;br /&gt;
   int n, i, a, b, f;&lt;br /&gt;
&lt;br /&gt;
   fin = fopen( &amp;quot;fibonacci.in&amp;quot;, &amp;quot;r&amp;quot; );&lt;br /&gt;
   fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;n );&lt;br /&gt;
   fclose( fin );&lt;br /&gt;
&lt;br /&gt;
   a = 0;&lt;br /&gt;
   if ( n == 1 )&lt;br /&gt;
     b = a;&lt;br /&gt;
   else {&lt;br /&gt;
     b = 1;&lt;br /&gt;
     for ( i = 2; i &amp;lt; n; i++ ) {&lt;br /&gt;
       f = a + b;&lt;br /&gt;
       a = b;&lt;br /&gt;
       b = f;&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   fout = fopen( &amp;quot;fibonacci.out&amp;quot;, &amp;quot;w&amp;quot; );&lt;br /&gt;
   fprintf( fout, &amp;quot;%d&amp;quot;, b );&lt;br /&gt;
   fclose( fout );&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Secvențe ==&lt;br /&gt;
&amp;#039;&amp;#039;Definiție&amp;#039;&amp;#039;: denumim &amp;#039;&amp;#039;secvență&amp;#039;&amp;#039; un șir de numere. Exemplu: &amp;lt;tt&amp;gt;34 20 4 0 12 5 8 7&amp;lt;/tt&amp;gt;. Simplu?&lt;br /&gt;
&lt;br /&gt;
=== Citirea unei secvențe ===&lt;br /&gt;
Deoarece nu avem unde păstra numerele unei secvențe, le vom citi, pe rînd, în aceeași variabilă. Pentru a ști cîte numere citim (cîte numere are secvența) de obicei vom citi mai întîi numărul de numere din secvență, &amp;lt;tt&amp;gt;n&amp;lt;/tt&amp;gt; și apoi cele &amp;lt;tt&amp;gt;n&amp;lt;/tt&amp;gt; numerele din secvență, într-o buclă WHILE-DO. Exemplu:&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:sl-secventa-citire.gif|frame|none|Citire secvență]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&amp;lt;syntaxhighlight&amp;gt; fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;n );&lt;br /&gt;
 i = 0;&lt;br /&gt;
 while ( i &amp;lt; n ) {&lt;br /&gt;
   fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;a );&lt;br /&gt;
   i = i + 1;&lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt; fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;n );&lt;br /&gt;
 &lt;br /&gt;
 for (i = 0; i &amp;lt; n; i = i + 1) {&lt;br /&gt;
   fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;a );&lt;br /&gt;
   &lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Suma unei secvențe ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    ///declaram 2 variabile de tip FILE*&lt;br /&gt;
    FILE *fin, *fout;&lt;br /&gt;
    ///vom asocia var. de tip file, 2 fisiere externe&lt;br /&gt;
    fin = fopen(&amp;quot;date.in&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
    fout = fopen(&amp;quot;date.out&amp;quot;, &amp;quot;w&amp;quot;);&lt;br /&gt;
    int n, i, nr;&lt;br /&gt;
    long long s;&lt;br /&gt;
    ///citim din fisier datele de intrare&lt;br /&gt;
    fscanf(fin, &amp;quot;%d&amp;quot;, &amp;amp;n);&lt;br /&gt;
    ///calculam suma primelor n numere&lt;br /&gt;
    s = 0;&lt;br /&gt;
    for(i = 1; i &amp;lt;= n; i++ ){&lt;br /&gt;
      fscanf(fin, &amp;quot;%d&amp;quot;, &amp;amp;nr);&lt;br /&gt;
      s = s + nr;&lt;br /&gt;
    }&lt;br /&gt;
    ///afisam rezultatul in fisierul de iesire&lt;br /&gt;
    fprintf(fout, &amp;quot;%lld&amp;quot;, s);&lt;br /&gt;
    fclose(fin);&lt;br /&gt;
    fclose(fout);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemple:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Fișierul &amp;lt;tt&amp;gt;suma.in&amp;lt;/tt&amp;gt;&lt;br /&gt;
!Fișierul &amp;lt;tt&amp;gt;suma.out&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;tt&amp;gt;3&amp;lt;br/&amp;gt;4 2 6&amp;lt;/tt&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;tt&amp;gt;12&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;tt&amp;gt;5&amp;lt;br/&amp;gt;25 10 8 0 4&amp;lt;/tt&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &amp;lt;tt&amp;gt;47&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Observații:&lt;br /&gt;
&lt;br /&gt;
* variabila &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; se numește &amp;#039;&amp;#039;contor&amp;#039;&amp;#039;, deoarece ea contorizează numărul de execuții al buclei WHILE-DO. Pentru a executa o buclă de &amp;lt;tt&amp;gt;n&amp;lt;/tt&amp;gt; ori inițializăm contorul cu &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; și ne oprim cînd devine egal cu &amp;lt;tt&amp;gt;n&amp;lt;/tt&amp;gt;. Preferăm această variantă, față de a porni cu &amp;lt;tt&amp;gt;i&amp;lt;/tt&amp;gt; de la &amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;, deoarece ne obișnuiește pentru viitor să lucrăm corect cu vectori.&lt;br /&gt;
* Variabila &amp;lt;tt&amp;gt;suma&amp;lt;/tt&amp;gt; se numește &amp;#039;&amp;#039;acumulator&amp;#039;&amp;#039;, deoarece în ea se acumulează rezultatul, pe măsură ce citim secvența. Orice variabilă de tip acumulator trebuie inițializată înainte de a începe calculele! În acest caz, deoarece este o sumă, ea se va inițializa cu &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt;, deoarece &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; este elementul neutru la adunare. Dacă am fi calculat produsul secvenței am fi inițializat acumulatorul cu &amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt;, deoarece &amp;lt;tt&amp;gt;1&amp;lt;/tt&amp;gt; este elementul neutru la înmulțire.&lt;br /&gt;
&lt;br /&gt;
=== Numărul de elemente pare din secvență ===&lt;br /&gt;
Să se afișeze cîte elemente pare se află într-o secvență&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:sl-secventa-nr-pare.gif|frame|none|Numărul de numere pare dintr-o secvență]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&amp;lt;syntaxhighlight&amp;gt; #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 int main() {&lt;br /&gt;
   FILE *fin, *fout;&lt;br /&gt;
   int n, i, a, pare;&lt;br /&gt;
&lt;br /&gt;
   fin = fopen( &amp;quot;pare.in&amp;quot;, &amp;quot;r&amp;quot; );&lt;br /&gt;
   fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;n );&lt;br /&gt;
   pare = 0;&lt;br /&gt;
   i = 0;&lt;br /&gt;
   while ( i &amp;lt; n ) {&lt;br /&gt;
     fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;a );&lt;br /&gt;
     if ( a % 2 == 0 )&lt;br /&gt;
       pare = pare + 1;&lt;br /&gt;
     i = i + 1;&lt;br /&gt;
   }&lt;br /&gt;
   fclose( fin );&lt;br /&gt;
&lt;br /&gt;
   fout = fopen( &amp;quot;pare.out&amp;quot;, &amp;quot;w&amp;quot; );&lt;br /&gt;
   fprintf( fout, &amp;quot;%d&amp;quot;, pare );&lt;br /&gt;
   fclose( fout );&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Numărul de elemente zero și diferite de zero din secvență ===&lt;br /&gt;
Să se calculeze cîte numere zero apar într-o secvență, precum și cîte numere diferite de zero.&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:sl-secventa-nr-zero.gif|frame|none|Numărul de elemente nule și nenule dintr-o secvență]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&amp;lt;syntaxhighlight&amp;gt; #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 int main() {&lt;br /&gt;
   FILE *fin, *fout;&lt;br /&gt;
   int n, i, a, zero;&lt;br /&gt;
&lt;br /&gt;
   fin = fopen( &amp;quot;zero.in&amp;quot;, &amp;quot;r&amp;quot; );&lt;br /&gt;
   fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;n );&lt;br /&gt;
   zero = 0;&lt;br /&gt;
   i = 0;&lt;br /&gt;
   while ( i &amp;lt; n ) {&lt;br /&gt;
     fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;a );&lt;br /&gt;
     if ( a == 0 )&lt;br /&gt;
       zero = zero + 1;&lt;br /&gt;
     i = i + 1;&lt;br /&gt;
   }&lt;br /&gt;
   fclose( fin );&lt;br /&gt;
&lt;br /&gt;
   fout = fopen( &amp;quot;zero.out&amp;quot;, &amp;quot;w&amp;quot; );&lt;br /&gt;
   fprintf( fout, &amp;quot;%d %d&amp;quot;, zero, n - zero );&lt;br /&gt;
   fclose( fout );&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Căutare număr în secvență ===&lt;br /&gt;
Să se spună dacă un număr &amp;lt;tt&amp;gt;e&amp;lt;/tt&amp;gt; apare într-o secvență și pe ce poziție. Dacă &amp;lt;tt&amp;gt;e&amp;lt;/tt&amp;gt; apare în secvență se va afișa poziția primei apariții a lui, între &amp;lt;tt&amp;gt;0&amp;lt;/tt&amp;gt; și &amp;lt;tt&amp;gt;n - 1&amp;lt;/tt&amp;gt;. În caz contrar se va afișa &amp;lt;tt&amp;gt;n&amp;lt;/tt&amp;gt;.&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:sl-secventa-cautare-element.gif|frame|none|Prima apariție a unui număr într-o secvență]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&amp;lt;syntaxhighlight&amp;gt; #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 int main() {&lt;br /&gt;
   FILE *fin, *fout;&lt;br /&gt;
   int n, i, a, e, poz;&lt;br /&gt;
&lt;br /&gt;
   fin = fopen( &amp;quot;caut.in&amp;quot;, &amp;quot;r&amp;quot; );&lt;br /&gt;
   fscanf( fin, &amp;quot;%d%d&amp;quot;, &amp;amp;e, &amp;amp;n );&lt;br /&gt;
   poz = n;&lt;br /&gt;
   i = 0;&lt;br /&gt;
   while ( i &amp;lt; n &amp;amp;&amp;amp; poz == n ) {&lt;br /&gt;
     fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;a );&lt;br /&gt;
     if ( a == e )&lt;br /&gt;
       poz = i;&lt;br /&gt;
     i = i + 1;&lt;br /&gt;
   }&lt;br /&gt;
   fclose( fin );&lt;br /&gt;
&lt;br /&gt;
   fout = fopen( &amp;quot;caut.out&amp;quot;, &amp;quot;w&amp;quot; );&lt;br /&gt;
   fprintf( fout, &amp;quot;%d&amp;quot;, poz );&lt;br /&gt;
   fclose( fout );&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Observații:&lt;br /&gt;
&lt;br /&gt;
* Variabila &amp;lt;tt&amp;gt;poz&amp;lt;/tt&amp;gt; are dublu rol. Pe de o parte ea memorează poziția primei apariții a numărului &amp;lt;tt&amp;gt;e&amp;lt;/tt&amp;gt; în secvență. Pe de altă parte ea ne spune dacă am găsit numărul, astfel încît să ieșim din bucla WHILE-DO imediat ce am găsit numărul &amp;lt;tt&amp;gt;e&amp;lt;/tt&amp;gt;. Variabilele care semnalează îndeplinirea unei condiții de oprire se numesc &amp;#039;&amp;#039;stegulețe&amp;#039;&amp;#039;, deci putem spune că variabila &amp;lt;tt&amp;gt;poz&amp;lt;/tt&amp;gt; este un &amp;#039;&amp;#039;steguleț&amp;#039;&amp;#039;.&lt;br /&gt;
=== Elementul maxim într-o secvență ===&lt;br /&gt;
&lt;br /&gt;
Dată o secvență de n numere să se afișeze elementul cel mai mare (maxim) din secvență.&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
  int  n, i, nr, max;&lt;br /&gt;
  scanf( &amp;quot;%d&amp;quot;, &amp;amp;n);           // citim numarul de valori din sir&lt;br /&gt;
  scanf( &amp;quot;%d&amp;quot;, &amp;amp;nr );         // citim primul numar din sir&lt;br /&gt;
  max = nr;                    // initializam maximul cu prima valoare di sir&lt;br /&gt;
  for(i = 1; i &amp;lt; n; i++ ){          // mai avem de citit n-1 valori&lt;br /&gt;
    scanf( &amp;quot;%d&amp;quot;, &amp;amp;nr );             // fiecare valoare citita&lt;br /&gt;
    if( nr &amp;gt; max )                  // daca noua valoare citita este mai mare decat maxim&lt;br /&gt;
      max = nr;                     // maximul va deveni acea valoare&lt;br /&gt;
  }&lt;br /&gt;
  printf( &amp;quot;%d&amp;quot;, max );&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| [[Image:sl-secventa-maxim.gif|frame|none|Numărul maxim în secvență]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot;|&amp;lt;syntaxhighlight&amp;gt; #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 int main() {&lt;br /&gt;
   FILE *fin, *fout;&lt;br /&gt;
   int n, i, a, max;&lt;br /&gt;
&lt;br /&gt;
   fin = fopen( &amp;quot;maxim.in&amp;quot;, &amp;quot;r&amp;quot; );&lt;br /&gt;
   fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;n );&lt;br /&gt;
   //citim prima val din sir si o punem direct in variabila maxim&lt;br /&gt;
   fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;max );&lt;br /&gt;
   for ( i = 1; i &amp;lt; n; i++ ) {&lt;br /&gt;
     fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;a );&lt;br /&gt;
     if ( max &amp;lt; a )&lt;br /&gt;
       max = a;&lt;br /&gt;
   }&lt;br /&gt;
   fclose( fin );&lt;br /&gt;
&lt;br /&gt;
   fout = fopen( &amp;quot;maxim.out&amp;quot;, &amp;quot;w&amp;quot; );&lt;br /&gt;
   fprintf( fout, &amp;quot;%d&amp;quot;, max );&lt;br /&gt;
   fclose( fout );&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Observații:&lt;br /&gt;
* De cate ori este posibil, vom initializa maximul cu prima valoare din sir ci nu cu o valoarea arbitrara. &lt;br /&gt;
* Pentru a calcula elementul &amp;#039;&amp;#039;minim&amp;#039;&amp;#039; într-o secvență singurul lucru care se modifică în schema de mai sus este semnul comparației max &amp;lt; a, din mai mic &amp;lt; în mai mare &amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Elementul maxim într-o secvență si frecventa acestuia ===&lt;br /&gt;
Dată o secvență de &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; numere să se afișeze elementul cel mai mare (maxim) din secvență si numarul de aparitii ale acestuia ( frecventa maximului in sir ).&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 int main() {&lt;br /&gt;
   FILE *fin, *fout;&lt;br /&gt;
   int n, i, a, max, f;&lt;br /&gt;
&lt;br /&gt;
   fin = fopen( &amp;quot;maxim.in&amp;quot;, &amp;quot;r&amp;quot; );&lt;br /&gt;
   fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;n );&lt;br /&gt;
   //citim prima val din sir si o punem direct in variabila maxim&lt;br /&gt;
   fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;max );&lt;br /&gt;
   for ( i = 1; i &amp;lt; n; i++ ) {&lt;br /&gt;
     fscanf( fin, &amp;quot;%d&amp;quot;, &amp;amp;a );&lt;br /&gt;
     if ( max &amp;lt; a ){&lt;br /&gt;
       max = a;&lt;br /&gt;
       f = 1;&lt;br /&gt;
     }&lt;br /&gt;
     else if ( max == a )&lt;br /&gt;
       f ++;&lt;br /&gt;
   }&lt;br /&gt;
   fclose( fin );&lt;br /&gt;
   fout = fopen( &amp;quot;maxim.out&amp;quot;, &amp;quot;w&amp;quot; );&lt;br /&gt;
   fprintf( fout, &amp;quot;%d&amp;quot;, max );&lt;br /&gt;
   fclose( fout );&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* [https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=1261 Patepare]&lt;br /&gt;
Se citesc numere de la tastatură până la apariția lui zero. Să se determine câte dintre ele erau pare.&lt;br /&gt;
&lt;br /&gt;
= Laborator =&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Probleme de pe PBINFO&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*[https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=2269 Maximpar]&lt;br /&gt;
*[https://www.pbinfo.ro/?pagina=probleme&amp;amp;id=2275,MinimDoua MinimDoua]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Probleme de pe VARENA&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [http://varena.ro/problema/pozitii Poziții]&lt;br /&gt;
* [http://varena.ro/problema/concurs concurs]&lt;br /&gt;
* [http://varena.ro/problema/multimi mulțimi]&lt;br /&gt;
* [http://varena.ro/problema/ucif ucif]&lt;br /&gt;
* [http://varena.ro/problema/case case]&lt;br /&gt;
* [http://varena.ro/problema/seif2 seif2]&lt;br /&gt;
&lt;br /&gt;
= Tema =&lt;br /&gt;
Codeforces&lt;br /&gt;
* [https://codeforces.com/contest/796/problem/A A - Buying A House]&lt;/div&gt;</summary>
		<author><name>Bella</name></author>
	</entry>
</feed>