Includeri (Curs 2)

La începutul unui program C sau C++ se includ de obicei fişiere antet. Un fişier antet se
recunoaşte uşor prin faptul că are de obicei extensia h. Se pot include şi fişiere cu extensia C sau
CPP, care conţin cod C, respectiv cod C++.
Fişierele antet conţin în general numai definiţiile unor funcţii a căror implementare
(descriere) se regăseşte separat în fişiere cu extensiile C, CPP, obj sau lib. Fişierele *.obj conţin
cod C sau C++ în forma compilată cu compilatorul Borland C/C++. Fişierele *.lib conţin
biblioteci de funcţii C şi C++. Odată cu mediul de programare C/C++ se instalează şi o mulţime
de biblioteci de funcţii împreună cu fişiere antet ce conţin definiţiile acestor funcţii.
Cele mai des incluse fişiere antet din C sunt stdio.h şi conio.h, care conţin definiţiile
funcţiilor standard de intrare / ieşire (citiri, scrieri), respectiv definiţii de funcţii consolă I/O (de
exemplu funcţia getch(), care aşteaptă apăsarea unui buton de la tastatură).
Includerea unui fişier începe cu semnul # (diez), urmat de cuvântul include şi de numele
fişierului care este dat între semnele < (mai mic) şi > (mai mare), sau între ghilimele. Numele
fişierului inclus poate fi precedat de eventuala cale unde se găseşte el pe disc.
Dacă fişierul ce se include nu este precedat de cale şi numele său este dat între ghilimele,
atunci el este căutat în calea curentă sau în directorul cu fişierele antet ce se instalează odată cu
mediul de programare.
Dacă fişierul inclus nu este precedat de cale şi numele lui este dat între semnele < şi >,
atunci el este căutat numai în directorul cu fişierele antet ale mediului de programare C/C++.
Pentru limbajul C o parte dintre funcţii sunt incluse implicit (compilatorul C le cunoaşte
fără a fi nevoie includerea vreunui fişier). Totuşi, în funcţie de compilator, pot fi generate mesaje
de atenţionare (warning) dacă nu facem includerile. În exemplul de mai sus dacă se salvează
programul cu extensia C (şi implicit se foloseşte compilatorul C), atunci includerea fişierului
antet stdio.h nu este neapărat necesară. Dacă salvăm însă fişierul cu extensia CPP, atunci
includerea lui stdio.h este obligatorie.
Iată în final şi câteva exemple de includeri:
# include <stdio.h>
# include "conio.h"
# include "c:\bc\test\test.cpp"

Structura unui program C : Obiective (Curs 1)

                    Ne propunem să vedem cum se scrie un program în limbajul C, ce secţiuni apar, unde şi
cum se redactează.
Un program C se salvează de obicei cu extensia C şi, implicit, compilarea se va face cu
compilatorul C. Dacă, însă, programul este salvat cu extensia CPP, atunci compilarea se va face
folosind compilatorul C++.
Un program C obişnuit are următoarea structură:
/* includeri
definitii macrocomenzi
definitii de tipuri de date
declaratii de variabile globale
definitii de constante globale
definitii de functii sau/si descrierea unor functii */
void main()
{
/* corpul functiei principale */
}
/* descriere functii care au definitia (antetul) deasupra functiei main */
Ordinea de apariţie a includerilor, a definiţiilor de macrocomenzilor, a tipurilor de date, a
variabilelor şi a constantelor globale este opţională. Mai mult, pot apărea mai multe grupuri de
includeri, macrocomenzi, definiţii de tipuri de date, variabile şi constante. Astfel, de exemplu,
putem avea declaraţii de variabile, apoi includeri, apoi iar declaraţii de variabile etc.
De regulă la începutul unui program C se pun includerile, dar, după cum am spus, nu este
obligatoriu.
Să facem observaţia că între /* şi */ în C se pun comentariile (aşa cum se poate vedea
în programul de mai sus). Cu alte cuvinte, tot ce apare între aceste semne nu este luat în
considerare la compilare.
Spre exemplificare prezentăm un program simplu care afişează un mesaj de salut:
# include <stdio.h> /* includerea fişierului antet stdio.h */
void main()
{
printf("HELLO WORLD!");
/* functia printf are antetul in fisierul stdio.h */
}
Facem observaţia că în C se face distincţie între litere mari şi mici, spre deosebire de
limbajul Pascal, de exemplu, unde nu contează dacă redactăm codul cu litere mari sau cu litere
mici. Astfel, în programul de mai sus, dacă scriam funcţia printf cu litere mari, ea nu era
recunoscută la compilare şi obţineam un mesaj de eroare.

Eliminarea spatiilor dintr-un sir

CODE
#include<iostream.h> #include<string.h> void main() { char a[100]; int i; cout<<"Sirul: "; cin.get(a,99); for(i=0;i<strlen(a);i++) if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z') cout<<a[i]; cout<<endl; }

Exemplu:

Daca de la tastatura se citeste: Mie nu imi place scoala, atunci se va afisa: Mienuimiplacescoala

Eliminarea cifrelor dintr-un sir

CODE
#include<iostream.h> #include<string.h> void main() { char x[100]; int i; cout<<"Sir:"; cin>>x; for(i=0;i<strlen(x);i++) if (strchr("0123456789",x[i])==0) cout<<x[i]; cout<<endl; }

Exemplu:

Daca intr-un sir sunt gasite una sau mai multe cifre, atunci vor fi eliminate. Daca se citeste de la tastatura Eu am 14 ani , atunci se va afisa: Eu am ani

Transformarea tuturor literelor unui sir in litere mari

CODE
#include<iostream.h> #include<string.h> void main() { int k,i; char a[101]; k='a'-'A'; strcpy(a,"clAsa a-XII-a A"); cout<<a<<endl; for(i=0;i<strlen(a);i++) if(a[i]>='a'&& a[i]<='z') a[i]=(a[i]-k); cout<<a<<endl; }

Exemplu:

Daca se citeste de la tastatura: Eu Sunt in clasa a-X-a atunci se va afisa : EU SUNT IN CLASA A-X-A.

Eliminarea vocalelor duble

CODE
#include<iostream.h> #include<string.h> void main() { char s[118]; int i=0; cout<<"Sir"; cin>>s; cout<<strlen(s)<<endl; while (i<strlen(s)) if((strchr("aeiou",s[i]))!=NULL) { strcpy(s+i,s+i+1); i=i+1; } else i=i+2; cout<<s<<endl; }

Exemplu:

Daca in sir se afla 2 vocale alaturate, atunci una din ele va fi eliminata.Daca se citeste de la tastatura: aebaiceogioguad atunci se va afisa: ebacogigad

Transformarea literelor mici in litere mari a fiecarui cuvant din sir

CODE
<#include<iostream.h> #include<string.h> #include<stdio.h> void main() { char s[255]; int i; cin.get(s,255); if(s[0]>='a'&&s[0]<='z') s[0]=s[0]-32; for(i=0;i<strlen(s);i++) if(s[i]==' ') s[i+1]=s[i+1]-32; cout<<s<<endl; }

Exemplu:

Prima litera a fiecarui cuvant din sir va fi convertita in litera mare.Daca se citeste le la tastatura sirul: mie imi place informatica atunci se va afisa: Mie Imi Place Informatica

Inversarea sirurilor

CODE
#include<iostream.h> #include void main() { char s[20]; int i,j,aux; cout<<"Sir: "; cin>>s; i=0; j=strlen(s)-1; while(i<j) { aux=s[i]; s[i]=s[j]; s[j]=aux; i++; j--; } cout<<s<<endl; }

Exemplu:

Daca se citeste sirul: copil atunci se va afisa de la dreapta la stanga: lipoc

Eliminarea literelor mici dintr-un sir

CODE
#include<iostream.h> #include<string.h> void main() { char s[20]; int i; cout<<"Sir: "; cin>>s; i=0; while(i<strlen(s)) if(s[i]>='a'&&s[i]<='z') strcpy(s+i,s+i+1); else i++; cout<<s<<endl; }

Exemplu:

Daca de la tastatura se citeste sirul: INFOrmatica , se va afisa: INFO

Transformarea literelor mici in litere mari

CODE
#include<iostream.h> #include<string.h> void main() { char s[20]; int i,n; cout<<"Introdu un cuvant:"; cin>>s; for(i=0;i<strlen(s);i++) if(strchr("aeiou",s[i])!=NULL) s[i]=s[i]-32; cout<<s<<endl; }

Exemplu:

In acest exemplu se vor transforma in litere mari doar vocalele.Daca se citeste de la tastatura cuvantul informatica se va afisa: InfOrmAtIcA

Copierea sirurilor

CODE
#include<iostream.h> #include<string.h> void main() { char *p="Acest sir se copiaza"; cout<<p<<endl; char t[100]; char *q="Sirul la care se adauga."; cout<<q; q=strcpy(t,p); cout<<q<<endl; }

Afisarea patratelor perfecte dintr-un vector

CODE
#include<iostream.h> #include<math.h> void main() { int v[50],w[50],n,i,j=0; cout<<"Introduceti numarul de elemente din vector:"; do{ cin>>n; if(n<0||n>50) cout<<"Introduceti alta valoare!"; }while(n<0||n>50); for(i=1;i<=n;i++) { cout<<"v["<<i<<"]="; cin>>v[i]; } for(i=1;i<=n;i++) if(sqrt(v[i])==(int)sqrt(v[i])) { ++j; w[j]=v[i]; } cout<<"Vectorul initial:"<<endl; for(i=1;i<=n;i++) cout<<v[i]<<" "; cout<<endl; cout<<"Vectorul cu componentele patrate perfecte din vectorul initial:"<<endl; for(i=1;i<=j;i++) cout<<w[i]<<" "; cout<<endl; }

Exemplu:

Pentru un vector cu 5 elemente: 1 2 3 4 5,in urma rularii programului,se va afisa:
Vectorul cu componentele patrate perfecte din vectorul initial: 1 4.

Casete popup

JavaScript are trei tipuri de casete popup:
  • Alert
  • Confirm
  • Prompt

Caseta Alert
O caseta de alerta se utilizeaza atunci cand doriti sa fiti siguri ca o anumita informatie ajunge in atentia utilizatorului. Cand o caseta de alerta este afisata , utilizatorul va trebui sa actioneze butonul "OK" pentru a continua.
Exemplu:
CODE
<html> <head> <script type="text/javascript"> function afiseaza_mesaj() { alert("Bine ati venit!"); } </script> </head> <body> <h3>La apasarea butonului este apelata o functie JS care afiseaza caseta alert</h3> <hr/> <form> <input type="button" value="Apasati!" onclick="afiseaza_mesaj()" /> </form> </body> </html>

Caseta Confirm
O caseta de confirmare se utilizeaza atunci cand doriti ca utilizatorul sa verifice sau sa accepte ceva.Cand caseta de afisare este afisata , utilizatorul va trebui sa actioneze butonul "OK" sau butonul "Cancel" pentru a putea continua.Daca utilizatorul actioneaza butonul "OK" ,caseta returneaza valoarea true ,daca actioneaza butonul "Cancel" ,caseta returneaza valoarea false.
Exemplu:
CODE
<html> <head> <script type="text/javascript"> function afiseaza_confirm() { var r=confirm("Apasati un buton"); if (r==true) { document.write("Ati apasat butonul OK!"); } else { document.write("Ati apasat butonul Cancel!"); } } </script> </head> <body> <h3>La apasarea butonului va fi apelata o functie care afiseaza caseta confirm si verifica ce buton ati apasat</h3> <hr/> <input type="button" onclick="afiseaza_confirm()" value="Apasa" /> </body> </html>

Caseta prompt
Aceasta caseta se utilizeaza atunci cand doriti ca utilizatorul sa introduca o anumita valoare inainte de accesa pagina.Cand caseta prompt este afisata, utilizatorul va trenui sa actioneze butonul "OK" sau butonul "Cancel" pentru a putea continua dupa ce introduce valoarea solicitata. Daca utilizatorul actioneaza butonul "OK" ,caseta returneaza valoarea true ,daca actioneaza butonul "Cancel" ,caseta returneaza valoarea false
Exemplu:
CODE
<html> <head> <script type="text/javascript"> function afiseaza_prompt() { var name=prompt("Va rog sa va introduceti numele",""); if (name!=null && name!="") { document.write("Buna ziua " + name + "! Ce mai faci?"); } } </script> </head> <body> <h3>La apasarea butonului va fi apelata o functie care afiseaza caseta prompt</h3> <hr/> <input type="button" onclick="afiseaza_prompt()" value="Apasa" /> </body> </html>

Observatie:
Daca vreti ca textul dintr-o caseta sa fie afisat pe mai multe linii, procedati ca in exemplu urmator:
CODE
<html> <head> <script type="text/javascript"> function afiseaza_alert() { alert("Buna! Asa se adauga" + '\n' + "o intrerupere de linie" + '\n' + "intr-o caseta de alertare!"); } </script> </head> <body> <h3>Caseta alert cu textul scris pe mai multe linii</h3> <hr/> <input type="button" onclick="afiseaza_alert()" value="Apasa" /> </body> </html>

Instructiunile conditionale

Instructiunea if
Exemplu:
CODE
<html> <body> <h3>Scriptul va afisa un mesaj daca ora<10 folosind instructiunea if</h3> <hr/> <script type="text/javascript"> var d = new Date(); var time = d.getHours(); if (time < 10) { document.write("<b>Buna dimineata</b>"); } </script> </body> </html>
Instructiunea if...else
Exemplu:
CODE
<html> <body> <h3>Scriptul va afisa un mesaj sau altul in functie de ora, cu instructiunea if..else</h3> <hr/> <script type="text/javascript"> var d = new Date(); var time = d.getHours(); if (time < 10) { document.write("<b>Buna dimineata</b>"); } else { document.write("<b>Buna ziua</b>"); } </script> </body> </html>
Instructiunea if...else if...else
Exemplu
CODE
<html> <body> <h3>Scriptul va afisa unul din trei mesaje in functie de ora, cu instructiunea if-else-if-else</h3> <hr/> <script type="text/javascript"> var d = new Date(); var time = d.getHours(); if (time<10) { document.write("<b>Buna dimineata</b>"); } else if (time>=10 && time<17) { document.write("<b>Buna ziua</b>"); } else { document.write("<b>Buna seara</b>"); } </script> </body> </html>
Instructiunea switch
Exemplu
CODE
<html> <body> <h3>Scriptul utilizeaza instructiunea switch</h3> <hr/> <script type="text/javascript"> var d = new Date(); theDay=d.getDay(); switch (theDay) { case 5: document.write("<b>Vineri</b>"); break; case 6: document.write("<b>Sambata</b>"); break; case 0: document.write("<b>Duminica</b>"); break; default: document.write("<b>Astept weekend-ul!</b>"); } </script> </body> </html>

Operatorii JavaScript

Operatorii aritmetici
Sunt folositi pentru a efectua operatii aritmetice cu variabile si/sau valori:
  • +       adunare
  • -        scadere
  • *        inmultire
  • /        impartire
  • %      modulo
  • ++     incrementare
  • --       decrementare

Operatorii de atribuire
Sunt folositi pentru a atribui valori variabilelor JavaScript:
  • =         x=y
  • +=       x+=y        x=x+y
  • -=        x-=y        x=x-y
  • *=        x*=y        x=x*y
  • /=        x/=y        x=x/y
  • %=      x%=y        x=x%y

Operatorii de comparare si operatorii logice
  • ==        Egal cu
  • ===        Este egal exact(valoare si tip)
  • !=        Diferit
  • >        Mai mare
  • <        Mai mic/y
  • >=        Mai mare egal
  • <=       Mai mic egal

Adunarea sirurilor si a numerelor
Exemplu:
CODE
<html> <body> <h3>Adunarea sirurilor de caractere si a numerelor cu siruri de caractere</h3> <hr/> <script type="text/javascript"> x=6+7; document.write("6+7="+x); document.write("<br />"); x="6"+"7"; document.write('"6"+"7"='+x); document.write("<br />"); x=6+"7"; document.write('6+"7"='+x); document.write("<br />"); x="6"+7; document.write('"6"+7='+x); document.write("<br />"); </script> </body> </html>

Variabile JavaScript

In JS, variabilele sunt folosite pentru a pastra valori sau expresii.O variabila poate avea un nume scurt , de exemplu x sau mai descriptiv, de exemplu prenume.
Exemplu:
CODE
<html> <body> <h3>Declararea, initializarea, atribuirea si afisarea unei variabile</h3> <hr/> <script type="text/javascript"> var prenume; prenume="Mihai"; document.write("<b>Numele variabilei</b>: prenume"); document.write("<br/>"); document.write("<b>Valoare initiala</b>: "+prenume); document.write("<br/>"); prenume="Adrian"; document.write("<b>Valoare dupa atribuire</b>: "+prenume); </script> </body> </html>

Inserarea scripturilor in JavaScript

Daca scriptul este inclus in sectiunea body , el va fi executat cat timp se incarca pagina.Daca scriptul este inclus in sectiunea head, el va fi executat numai cand este apelat.
Scripturi in head
CODE
<html> <head> <script type="text/javascript"> function message() { alert("Aceasta caseta de alertare este apelata si afisata cand are loc evenimentul onload"); } </script> </head> <body onload="message()"> <h3>Casetele de alertare</h3> <hr/> </body> </html>

Scripturi in body
CODE
<html> <head> </head> <body> <h3>Afisarea textului cu JavaScript</h3> <hr/> <script type="text/javascript"> document.write("Acest mesaj este scris cu JavaScript"); </script> </body> </html>

Puteti include un numar nelimitat de scripturi JS in document , deci puteti avea scripturi si in <head> si in <body>

Introducere in JavaScript

JavaScript este cel mai popular limbaj pentru scripturi si functioneaza in toate browserele importante, cum ar fi Internet Explorer, Firefox, Chrome, Opera si Safari.


Ce este JavaScript?

  • JavaScript a fost proiectat pentru a adauga interactivitate paginilor HTML
  • JavaScript este un limbaj pentru scripturi
  • Un limbaj pentru scripturi este un limbaj de programare simplificat
  • JavaScript este ,in general, inglobat direct in paginile HTML.


Ce poate face JavaScript?

  • JavaScript ofera proiectantilor HTML un instrument de programare.
  • JavaScript poate insera in mod dinamic text intr-o pagina HTML.
  • JavaScript poate reactioana la evenimente.
  • JavaScript poate citi si scrie elementele HTML.
  • JavaScript poate fi folosit pentru a valida datele.
  • JavaScript poate fi folosit pentru a detecta browserul utilizatorului.
  • JavaScript poate fi folosit pentru a crea cookies si casete popup.


Cum se inseraza JavaScript intr-o pagina HTML?

Pentru a insera JavaScript in HTML, folosim tagul <script> si in interiorul acestui tag folosim stributul type pentru a defini limbajul in care este scris scriptul.Deci tagurile <script type="text/javascript" si </script> marcheaza locul in care incepe, respectiv se sfarseste scriptul.

Comanda document.write reprezinta modalitatea JS pentru a scrie text intr-o pagina.


In exemplu urmator , JS este utilizat pentru a scrie un text intr-o pagina web:
CODE
<html> <body> <h3>Afisarea unui mesaj cu JavaScript</h3> <hr/> <script type="text/javascript"> document.write("Bine ati venit!"); </script> </body> </html>

Suma cifrelor fiecarui element din vector

CODE
#include<iostream.h> void main() { int v[100],n,i,s,t; cout<<"Introduceti numarul de elemente: "; do{ cin>>n; if(n<0||n>100) cout<<"Introduceti alta valoare!"; }while(n<0||n>100); for(i=1;i<=n;i++) { cout<<"V["<<i<<"]= "; cin>>v[i]; } cout<<"Suma cifrelor fiecarui element din vector:"<<endl; for(i=1;i<=n;i++) { s=0; t=v[i]; while(t!=0) { s=s+t%10; t/=10; } cout<<v[i]<<"->"<<s<<endl; } }

Exemplu:

Pentru un vector cu 5 elemente: 1 58 47 2598 8899 ,in urma rularii programului,se va afisa:
Suma cifrelor fiecarui element din vector: 1 13 24 34

Cookies in JavaScript

Un cookie este o variabila pastrata in calculatorul vizitatorului.De fiecare data cand calculatorul respectiv cere browserului o pagina , el va trimite si cookie-ul respectiv.Cu JavaScript , puteti crea si extrage cookies.
Exemple de cookies:

Numele utilizatorului - Prima data cand utilizatorul va viziteaza pagina trebuie sa-si completeze numele.Numele este stocat intr-un cookie.Urmatoarea data cand vizitatorul ajunge la pagina dumneavoastra, puteti sa-l intampinati cu un mesaj de genul "Bun venit......!".Numele este recuperat dintr-un cookie.

Parola - Prima data cand utilizatorul se logheaza pe site trebuie sa completeze o parola.Parola este memorata intr-un cookie.Data viitoare cand se logheaza , parola poate fi recuperata dintr-un cookie.

Data calendaristica - Prima data cand utilizatorul va viziteaza pagina , data curenta este memorata intr-un cookie.Data viitoare cand utilizatatorul va viziteaza pagina, puteti afisa un mesaj de genul: "Ultima dvs. vizita a fost in data de...!".Aceasta data este recuperata dintr-un cookie.


In acest exemplu vom crea un cookie care memoreaza numele utilizatorului , apoi vom folosi numele memorat pentru a afisa un mesaj de bun venit:

CODE
<html> <head> <script type="text/javascript"> function getCookie(c_name) { if (document.cookie.length>0) { c_start=document.cookie.indexOf(c_name + "="); if (c_start!=-1) { c_start=c_start + c_name.length+1 ; c_end=document.cookie.indexOf(";",c_start); if (c_end==-1) c_end=document.cookie.length return unescape(document.cookie.substring(c_start,c_end)); } } return "" } function setCookie(c_name,value,expiredays) { var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toGMTString()); } function checkCookie() { username=getCookie('username'); if (username!=null && username!="") { alert('Bine ai revenit '+username+'!'); } else { username=prompt('Va rog sa va introduceti numele:',""); if (username!=null && username!="") { setCookie('username',username,365); } } } </script> </head> <body onLoad="checkCookie()"> <h3>Crearea unui cookie. Reincarcati pagina pentru a vedea cum functioneaza</h3> <hr/> </body> </html>