6. Să se afişeze în fişierul “tri1.txt” triunghiul de numere:
n n-1 n-2…3 2 1
……………
3 2 1
2 1
1
program prob21;
var f:text;
i,j,n:integer;
begin
write(‘n=’); readln(n);
assign(f,’tri1.txt’);
rewrite(f);
for i:=n downto 1 do begin
for j:=i downto 1 do write(f,j:4);
writeln;
end;
close(f);
end.
unde n este un număr natural citit de la tastatură.
Popularity: 2% [?]
//*Sa se scrie un program C care sa citeasca de la tastatura N siruri de caractere (N < 10, introdus de la tastatura) si afiseaza cel mai mare dintre siruri din punct de vedere alfabetic.*//
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main(){
char s[10][50];
int i,a,n;
char max[50];
printf(“introdu numarul de siruri\n”);
scanf(“%d”,&n);
printf(“introdu sirurile\n”);
for (i=0;i<=n;i++)
gets(s[i]);
strcpy(max,s[1]);
for (i=0;i<n-1;i++) {
a=strcmp(s[i],s[i+1]);
if (a<0) strcpy(max,s[i+1]);}
printf(“sirul maxim este=%s\n”,max);
}
Popularity: 2% [?]
//*Sa se scrie un program in C care sa permita construirea unei liste cu cartile dintr-o biblioteca prin intermediul unui meniu interactiv cu urmatoarele optiuni:
1. Adaugare carte (titlu si autor)
2. Cautare dupa titlu
3. Cautare dupa autor
4. Iesire
*//
#include
#include
char *titlu(char *s){
int i=0;
char *x;
while (*(s+i)!=’-'){
*(x+i)=*(s+i);
i++;}
*(x+i)=’\0′;
return x;
}
char *autor(char *s){
int i=0;
while (*(s+i)!=’-') i++;
return s+i+1;}
void main (void){
char a[10][50],s[50];
int opt,i,j,k;
printf(“1:adauga carte-autor\n 2:cauta dupa numele cartii\n 3:cauta dupa autor\n 4:exit\n”);
i=0;
do{
printf(“introdu optiunea\n”);
scanf(“%d”,&opt);
printf(“\n”);
switch (opt){
case 1:printf(“introdu cartea-autor\n”);
gets(a[i]);gets(a[i]);
i++;break;
case 2:printf(“introdu numele cartii\n”);
gets(s);gets(s);
printf(“\n”);
k=0;
for (j=0;j
if (strcmp(titlu(a[j]),s)==0){
printf(“%s\n”,a[j]);
k=1;
}
if (k==0) printf(“cartea %s nu exista\n”,a[j]);
break;
case 3:printf(“introdu autorul\n”);
gets(s);gets(s);
k=0;
for (j=0;j
if (strcmp(autor(a[j]),s)==0) {
printf(“%s”,a[j]);
k=1;}
if (k==0) printf(“autorul %s nu apare\n”,a[j]);
break;
case 4: break;
default: printf(“cod incorect”);}}
while (opt!=4);
}
Popularity: 1% [?]
//*Sa se scrie un program in C care sa permita efectuarea unor operatii asupra unor numere complexe. Programul trebuie sa contina definirea tipului de data nr_complex si urmatoarele functii pentru operatiile cu numere complexe:
void citire (nr_complex *rezultat);
void afisare (nr_complex n);
void adunare (nr_complex n1, nr_complex n2, nr_complex *rezultat);
void scadere (nr_complex n1, nr_complex n2, nr_complex *rezultat);
void inmultire (nr_complex n1, nr_complex n2, nr_complex *rezultat);
double modul (nr_complex n);
void conjugat (nr_complex n, nr_complex *rezultat);
Programul trebuie sa contina un meniu cu urmatoarele optiuni:
1. Suma
2. Diferenta
3. Produsul
4. Modulul
5. Conjugatul
0. Exit
La selectarea optiunilor 1, 2 sau 3, aplicatia va citi de la tastatura 2 numere complexe si va afisa rezultatul operatiei corespunzatoare. Pentru optiunile 4 si 5, aplicatia va citi un singur numar complex si va afisa rezultatul operatiei respective.
Meniul se repeta pana cand utilizatorul selecteaza optiunea 0.
*//
#include <stdio.h>
#include <math.h>
#include <conio.h>
typedef struct{
int x;
int y;
}nr_complex;
void citire(nr_complex *c){
printf(“introduceti partea reala a nr\n”);
scanf(“%d”,&(c->x));
printf(“introduceti partea imaginara a nr\n”);
scanf(“%d”,&(c->y));
}
void afisare(nr_complex c){
printf(“%d + %d * i\n”,c.x,c.y);
}
void suma(nr_complex a,nr_complex b,nr_complex *s){
s->x=a.x+b.x;
s->y=a.y+b.y;
}
void diferenta(nr_complex a,nr_complex b,nr_complex *d){
d->x=a.x-b.x;
d->y=a.y-b.y;
}
void produs(nr_complex a,nr_complex b,nr_complex *p){
p->x=a.x*b.x-a.y*b.y;
p->y=a.x*b.y+b.x*a.y;
}
double modul(nr_complex a){
double n;
n=sqrt(a.x*a.x+a.y*a.y);
return n;}
void conjugat(nr_complex a,nr_complex *c){
c->x=a.x;
c->y=-a.y;
}
void main(void){
nr_complex *a,*b,*s;
int opt;
printf(“1: calculeaza suma\n”);
printf(“2: calculeaza diferenta\n”);
printf(“3: calculeaza prodususul\n”);
printf(“4: calculeaza modulul\n”);
printf(“5: calculeaza conjugatul\n”);
printf(“6: exit\n”);
do{
printf(“introduceti optiunea\n”);
scanf(“%d”,&opt);
switch(opt){
case 1:citire(a);afisare(*a);
citire(b);afisare(*b);
suma(*a,*b,s);
printf(“suma este=”);
afisare(*s);
break;
case 2:citire(a);afisare(*a);
citire(b);afisare(*b);
diferenta(*a,*b,s);
printf(“diferenta este=”);
afisare(*s);
break;
case 3:citire(a);afisare(*a);
citire(b);afisare(*b);
produs(*a,*b,s);
afisare(*s);
break;
case 4:citire(a);afisare(*a);
printf(“modulul este %.3f”,modul(*a));
printf(“\n”);
break;
case 5:citire(a);afisare(*a);
printf(“conjugatul este=”);
conjugat(*a,s);
afisare(*s);
break;
case 6:break;
default: printf(“cod incorect\n”);
}
}
while (opt!=6);
}
Popularity: 1% [?]
//*Sa se scrie o aplicatie in C pentru evidenta studentilor de la o facultate. Despre un student se cunosc urmatoarele informatii: numele, sectia, grupa (numar intreg pentru grupa, siruri de caractere pentru celelalte campuri). Programul trebuie sa permita, printr-un meniu interactiv, urmatoarele operatii (prin functii cu transfer de parametrii – parametrii obligatorii ai functiilor sunt tabloul de studenti si numarul curent de studenti):
1. Adaugarea unui student
2. Afisarea tuturor studentilor
3. Afisarea tuturor studentilor de la o anumita sectie
4. Afisarea tuturor studentilor dintr-o anumita grupa
5. Cautarea unui student dupa nume
6. Stergerea unui student dupa nume
7. Sortarea studentilor dupa nume
0. Exit
*//
#include
#include
#include
typedef struct {
char nume[20],sectia[20];
int grupa;
}student;
void citire(student *a,int *n){
printf(“introduceti numele studentului\n”);
(*n)++;
gets((a+*n)->nume);gets((a+*n)->nume);
printf(“\n”);
printf(“introduceti sectia\n”);
gets((a+*n)->sectia);
printf(“\n”);
printf(“introduceti grupa\n”);
scanf(“%d”,&((a+*n)->grupa));
printf(“\n”);
}
void afisare(student *a,int *n){
printf(“%30s \t %15s \t %5d \n”,(a+*n)->nume,(a+*n)->sectia,(a+*n)->grupa);
}
void cautsec(student *a,int *n,char x[20]){
int i;
for (i=0;i<=(*n);i++)
if (strcmp((a+i)->sectia,x)==0)
afisare(a,&i);
}
void cautgr(student *a,int *n,int c){
int i;
for (i=0;i<=(*n);i++)
if ((a+i)->grupa==c) afisare(a,&i);
}
void cautnume(student *a,int *n,char x[20]){
int i;
for (i=0;i<=(*n);i++)
if (strcmp((a+i)->nume,x)==0) afisare(a,&i);
}
void sterg(student *a,int *n,char x[30]){
int i,j,k=0;
for (i=0;i<=(*n);i++)
if (strcmp((a+i)->nume,x)==0){
k++;
for (j=i;j<(*n-k);j++)
*(a+j)=*(a+j+1);
}
*n=*n-k;
}
void sortare(student *a,int *n){
int i,k;
student *aux;
do{
k=1;
for (i=0;i<=(*n-1);i++)
if (strcmp((a+i)->nume,(a+i+1)->nume)>0){
*aux=*(a+i);
*(a+i)=*(a+i+1);
*(a+i+1)=*aux;k=0;
}
}
while (!k);
}
void main(void){
student a[100];
int opt,n=-1,i,j,g;
char x[30],y[30];
clrscr();
printf(“1: adauga un student\n”);
printf(“2: afiseaza toti studentii\n”);
printf(“3: afiseaza studentii de la o anumita sectie\n”);
printf(“4: afiseaza studentii dintr-o anumita grupa\n”);
printf(“5: cauta un student dupa nume\n”);
printf(“6: sterge un student dupa nume\n”);
printf(“7: sortarea studentiilor dupa nume\n”);
printf(“8: iesire\n\n”);
do{
printf(“introduceti optiunea\n”);
scanf(“%d”,&opt);
switch(opt){
case 1: citire(&a[0],&n);
break;
case 2: printf(“\n %30s \t %15s \t %5s \n”,”NUME”,”SECTIE”,”GRUPA”);
for (i=0;i<=n;i++)
afisare(&a[0],&i);
break;
case 3: printf(“introduceti sectia dorita\n”);
scanf(“%s”,x);
cautsec(&a[0],&n,x);
break;
case 4: printf(“grupa pe care o doriti\n”);
scanf(“%d”,&g);
cautgr(&a[0],&n,g);
break;
case 5: printf(“introduceti numele pe care doriti sa-l cautati\n”);
scanf(“%s”,y);
cautnume(&a[0],&n,y);
break;
case 6: printf(“introduceti numele stud pe care vreti sa-l stergeti\n”);
scanf(“%s”,y);
sterg(&a[0],&n,y);
afisare(&a[0],&n);
break;
case 7: sortare(&a[0],&n);
for (i=0;i<=n;i++) afisare(&a[0],&i);
break;
case 8: break;
default: printf(“cod incorect\n”);
}
}
while (opt!=8);
}
Popularity: 3% [?]