0% found this document useful (0 votes)
41 views23 pages

Gorea Sorin

The document describes a menu-driven program that performs three tasks: 1) Finds even numbers between 4 and 18 in an array and highlights them. 2) Finds numbers in an array that are divisible by 7 with remainders of 1, 2, or 5 and highlights them. 3) Checks if the roots of the equation x^2 + 3x * a[i] + 5 = 0 are real numbers and highlights the matching array elements. The program prompts the user to select a task and performs the corresponding operation on the array.

Uploaded by

anon_438568870
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views23 pages

Gorea Sorin

The document describes a menu-driven program that performs three tasks: 1) Finds even numbers between 4 and 18 in an array and highlights them. 2) Finds numbers in an array that are divisible by 7 with remainders of 1, 2, or 5 and highlights them. 3) Checks if the roots of the equation x^2 + 3x * a[i] + 5 = 0 are real numbers and highlights the matching array elements. The program prompts the user to select a task and performs the corresponding operation on the array.

Uploaded by

anon_438568870
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Tehnici de programare

Alcatuiti un meniu care va calcula: a)numérele mai mari decit 8 sa fie inlocuite cu cifra 1;

b)numérele nenegative ,pare,mai mici decit 12 sa fie inlocuite cu 5

c)produsul numerelor impare negative

#include <stdio.h>
#include "d:\color.h"
main()
{
int i,a[5],n,e;
printf("Introduceti nr de elemente:\t");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\t elem %d: ", i+1);
scanf("%d", &a[i]);
}
printf("\n Alegeti una din optiuni:\n");
printf("1.Sarcina a\n");
printf("2.Sarcina b\n");
printf("3.Sarcina c\n");
scanf("%i",&e);
switch(e)
{
case 1:
{
printf("Elementele sirului sunt: \n");
for(i=0; i<n; i++)
{
SetColor(15);
if(a[i]>1 && a[i]<8)printf("%d \t", a[i]);
else{
if(a[i]>0){SetColor(14);
printf("%d \t", a[i]);}else{SetColor(15); printf("%d \t", a[i]);}}}
printf("\n");
for(i=0; i<n; i++)
{
SetColor(15);
if(a[i]>1 && a[i]<8)printf("%d \t", a[i]);
else{
if(a[i]>0){SetColor(14);
printf("1 \t", a[i]);}else{SetColor(15); printf("%d \t", a[i]);}}
}}break;
case 2:
{
printf("Elementele sirului sunt: \n");
for(i=0; i<n; i++)
{
SetColor(14);
if(a[i]>2 && a[i]<12 && a[i]>0 && a[i]%2==0)printf("%d \t", a[i]);
else{
SetColor(15);
printf("%d \t", a[i]);}}
printf("\n");
for(i=0; i<n; i++)
{
SetColor(14);
if(a[i]>2 && a[i]<12 && a[i]>0 && a[i]%2==0)printf("5 \t", a[i]);
else{
SetColor(15);
printf("%d \t", a[i]);}
}}break;
case 3:
{
int prod=1;
printf("Elementele sirului sunt: \n");
for(i=0; i<n; i++)
{
SetColor(14);
if(a[i]%2!=0 && a[i]<0)printf("%d \t", a[i]);
else{
SetColor(15);
printf("%d \t", a[i]);}}
printf("\n");
for(i=0;i<n;i++)
{
if(a[i]%2!=0 && a[i]<0){prod=prod*a[i];}
}
printf("Produsul este: %d",prod);
}break;

default:printf("Alegeti o optiune din cele indicate!");


}
}
a) b)

c)

Sa se calculeze media aritmética de pe fiecare linie a matricei iar numarul care este mai mic decit
suma indicilor sai sa fie inlocuita cu rezultatul impartirii numarului la ma.
#include <stdio.h>
#include "d:\color.h"
#include <math.h>
main()
{
float a[10][10],ma=0,s;
int i,j,n,m;
printf("Introduceti n=");
scanf("%d",&n);
printf("Introduceti m=");
scanf("%d",&m);
printf("\n");
printf("\n");
for(i=1;i<n;i++)
{
for(j=1;j<m;j++)
{
a[i][j]=10.00/(i+j);
SetColor(15);
printf("%.2f\t",a[i][j]);
}
printf("\n");
printf("\n");
}
SetColor(15);
for(i=1;i<n;i++)
{
s=0.00;
for(j=1;j<m;j++)
{
s=s+a[i][j];
ma=s/(m-1);
if(a[i][j]>(i+j))
{
SetColor(14);
printf("%.2f\t",a[i][j]/ma);
}else{
SetColor(15);
printf("%.2f\t",a[i][j]);}
}
printf("Media aritmetmetica de pe linia este %.2f\n",ma);

}
Sa se afle numérele pare si impare dintr-un vector afisindu-le indicii si valorile acestora.

#include <stdio.h>
#include "color.h"

main()
{
int i,D[10],n,p[10],j=0;
printf("Introduceti nr de elemente:\t\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\t elem %d: ", i);
scanf("%d", &D[i]);
}
printf("Numerele pare sunt:\n");
for(i=0;i<n;i++)
{
SetColor(4);
if(D[i]%2==0)printf("%d\t",D[i]);else
{
SetColor(15);printf("%d\t",D[i]);}
}
printf("\n");
SetColor(15);
printf("Valorile ultimelor elemente pare sunt:\n");
for(i=0;i<n;i++)
{
if(D[i]%2==0){p[j]=D[i];j=j+1;}
}
printf("%d\t%d ",p[j-2],p[j-1]);
printf("\n");
printf("Indicile ultimelor elemente pare sunt:");
printf("\n");
for(i=0;i<n;i++)
{
if(D[i]%2==0)
{
SetColor(4);
printf("%d \t",i);
}
else
{
SetColor(15);
printf("%d \t",i);

}
}
printf("\n");
printf("Numerele impare sunt:\n");
for(i=0;i<n;i++)
{
SetColor(4);
if(D[i]%2!=0)printf("%d\t",D[i]);else {SetColor(15);printf("%d\t",D[i]);}
}
printf("\n");
SetColor(15);
printf("Valorile ultimelor elemente impare sunt:\n");
for(i=0;i<n;i++)
{
if(D[i]%2!=0){p[j]=D[i];j=j+1;}
}
printf("%d\t%d \t%d ",p[j-3],p[j-2],p[j-1]);
printf("\n");
printf("Indicile ultimelor elemente impare sunt:");
printf("\n");
for(i=0;i<n;i++)
{
if(D[i]%2!=0)
{
SetColor(4);
printf("%d\t",i);
}
else
{
SetColor(15);
printf("%d\t",i);

}
}
SetColor(15);
}

Sa se introduca eleméntele unui sir afisind produsul elementelor negative de pe pozitii pare
,eleméntele cu índice impar si suma lor si eleméntele mai mare decit 7.Comparati produsul cu
suma.

#include <stdio.h>
#include "d:\color.h"
main(){
int sorin[8],i,k;
float p=1,s1=0,s2=0,s3=0;
printf("Introduceti nr k:");
scanf("%i",&k);
for(i=1;i<8;i++)
{
printf("%i=",i);
scanf("%i",&sorin[i]);}
printf("Elementele sirului sunt:");
printf("\n");
for(i=1;i<8;i++){printf("%i\t",i);}
printf("\n");
for(i=1;i<8;i++)
{
if(i%2==0 && sorin[i]<0)
{
SetColor(14);
printf("%i\t",sorin[i]);
}
else
{
SetColor(15);
printf("%i\t",sorin[i]);
}
}
for(i=1;i<8;i++)
{
if(i%2==0)
{
if(sorin[i]<0 && sorin[i]%k==0)p=p*sorin[i];
}
}
printf("\n Produsul elementelor neg de pe poz pare este: %f",p);
printf("\n");
printf("\n");
printf("Elementele cu indice impar sunt:");
printf("\n");
for(i=1;i<8;i++){printf("%i\t",i);}
printf("\n");
for(i=1;i<8;i++)
{
if(i%2!=0)
{
s1=s1+sorin[i];
SetColor(4);
printf("%i\t",sorin[i]);
}else
{
SetColor(15);
printf("%i\t",sorin[i]);
}
}
SetColor(15);
printf("\n Suma el cu ind imp este %f",s1);
printf("\n");
printf("\n");
printf("Elementele mai mare ca 7 sunt:");
printf("\n");
SetColor(15);
for(i=1;i<8;i++){printf("%i\t",i);}
printf("\n");
for(i=1;i<8;i++)
{
if(sorin[i]>7)
{
s2=s2+sorin[i];
SetColor(4);
printf("%i\t",sorin[i]);
}else
{
SetColor(15);
printf("%i\t",sorin[i]);
}
}
SetColor(15);
printf("\n Suma el mai mare ca 7 este %f",s2);
s3=s1/s2;
if(p>s3)printf("\n Produsul %f este mai mare decit suma %f",p,s3);else printf("\n Produsul %f nu
este mai mare decit suma %f",p,s3);
}
Sa se afle minimul de pe diagonalele unei matrici si sa fie inlocuite cu cifra

#include <stdio.h>
#include "d:\color.h"
main()
{
int i,j,n,m,c,b,b1,a[10][10],min=99999,min1=99999;
printf("Introduceti n=");
scanf("%d",&n);
printf("Introduceti m=");
scanf("%d",&m);
printf("\n");
printf("\n");
for(i=0;i<n;i++){
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("\n");
printf("\n");
for(i=0;i<n;i++){
for(j=0;j<m;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
printf("\n");
}
for(i=0;i<n;i++)
if(a[i][i]<min){min=a[i][i]; c=i;};
printf("Minimul de pe diagonala principala este %d",min);
printf("\n");
for(i=0;i<n;i++){
if(a[i][n-i-1]<min1){min1=a[i][n-i-1];
b=i;b1=n-i-1;};}
printf("Minimul de pe diagonala secundara este %d",min1);
printf("\n");
for(i=0;i<n;i++){
for(j=0;j<m;j++)
{
if(a[i][j]==min || a[i][j]==min1){SetColor(14);
printf("%d\t",a[1][1]);}else{SetColor(15);
printf("%d\t",a[i][j]);}
}
printf("\n");
printf("\n");}
printf("\n");

Sa se creeze un meniu in care sa se afle:a)Elementele pare din (4;18)

b)Numerele care impartite la 7 dau restul 1,2 sau 5


c)Radacinile ecuatiei sint reale 𝑥 2 + 3𝑥 ∗ 𝑎[𝑖] + 5 = 0
a)

b)

c)
#include <stdio.h>
#include <math.h>
#include "d:\color.h"

main()
{
int i,a[5],n,e;
printf("Introduceti nr de elemente:\t");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\t elem %d: ", i+1);
scanf("%d", &a[i]);
}
printf("\n Alegeti una din optiuni:\n");
printf("1.Elementele pare din (4;18)\n");
printf("2.Numerele divizibile la 7\n");
printf("3.Radacinile ecuatiei sint nr reale\n");
scanf("%i",&e);
switch(e)
{
case 1:
{
printf("Elementele pare din (4;18) :\n");
for(i=0;i<n;i++)
{
if(a[i]>4 && a[i]<18 && a[i]%2==0)printf(" %d \t",a[i]);
}
}
printf("\n Elementele sirului sunt: \n");
for(i=0; i<n; i++)
{
if(a[i]>4 && a[i]<18 && a[i]%2==0)
{
SetColor(4);
printf(" %d \t",a[i]);
}
else
{
SetColor(15);
printf(" %d \t",a[i]);
}
}break;

case 2:
{
printf("Elementele divizibile la 7 :\n");
for(i=0;i<n;i++)
{
if(a[i]%7==1 || a[i]%7==2 || a[i]%7==5)printf(" %d \t",a[i]);
}
printf("\nElementele sirului sunt: \n");
for(i=0; i<n; i++)
{
if(a[i]%7==1 || a[i]%7==2 || a[i]%7==5)
{
SetColor(4);
printf(" %d \t",a[i]);
}
else
{
SetColor(15);
printf(" %d \t",a[i]);
}
}break;

case 3:
{
printf("Elementele sirului care satisfac conditia sunt \n");
for(i=0;i<n;i++)
{
if(((pow(3,2)*pow(a[i],2))-(4*5))>=0)
{
SetColor(4);
printf(" %d \t",a[i]);
}
else
{
SetColor(15);
printf(" %d \t",a[i]);
}
}break;

} default:printf("Alegeti o optiune din cele indicate!");


}
}
}
Calculati F1 si F2:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include "d:\color.h"
float F1,F2,x,y,a,b;
float func1(float x,float y)
{
printf("Introduceti x si y -->");
scanf("%f %f",&x,&y);
F1=9*x+4/(1-log(y));
return F1;
}
float func2(float a,float b)
{
printf("\nIntroduceti a si b -->");
scanf("%f %f",&a,&b);
F2=3*a-log(F1)+tan(b);
return F2;

}
main()
{
float rez1,rez2;
rez1=func1(x,y);
printf("\n F1=%.2f",rez1);
rez2=func2(a,b);
printf("\nF2=%.2f",rez2);
}
Tren:Punctul_de_pornire,Punctul_destinatiei,Nr vagon etc:

#include <stdio.h>
#include <conio.h>
#include <string.h>
struct tren{char Punctul_pornire[20];
char Punctul_destinatiei[20];
int Nr_vagon;
int Nr_locuri;
float Pretul;
};
main()
{
struct tren bibl[5];int i;
for(i=0;i<3;i++)
{
puts("Introduceti Punctul de pornire:");scanf("%s",&bibl[i].Punctul_pornire);
puts("Introduceti Punctul destinatiei:");scanf("%s",&bibl[i].Punctul_destinatiei);
puts("Introduceti Nr vagon:");scanf("%i",&bibl[i].Nr_vagon);
puts("Introduceti Nr locuri:");scanf("%i",&bibl[i].Nr_locuri);
puts("Introduceti pretul:");scanf("%f",&bibl[i].Pretul);}
//////// Ordinea alfabetica
for(char c='a';c<='z';c++)
for(i=0;i<3;i++)
if(strchr(strlwr(bibl[i].Punctul_pornire),c)-bibl[i].Punctul_pornire==0)
printf("%i).Trenul de la %s spre %s cu %i vag si %i loc , pretul este de %.2f lei
\n",i,bibl[i].Punctul_pornire,bibl[i].Punctul_destinatiei,
bibl[i].Nr_vagon,bibl[i].Nr_locuri,bibl[i].Pretul);

printf("\n");
////////Cautarea dupa un cimp de tip char

char oras[256];
printf("Introduceti numele orasului:\n");
scanf("%s",&oras);
for(i=0;i<3;i++)
if(strcmp(bibl[i].Punctul_pornire,oras)==0)
printf("%i).Trenul de la %s spre %s cu %i vag si %i loc , pretul este de %.2f lei
\n",i,bibl[i].Punctul_pornire,bibl[i].Punctul_destinatiei,
bibl[i].Nr_vagon,bibl[i].Nr_locuri,bibl[i].Pretul);

/////Cautare numerica
float Bilet;
float media;
printf("Introduceti pretul biletului:\n");
scanf("%f",&Bilet);
for(i=0;i<3;i++)
if(bibl[i].Pretul==Bilet)
printf("%i).Trenul de la %s spre %s cu %i vag si %i loc , pretul este de %.2f lei
\n",i,bibl[i].Punctul_pornire,bibl[i].Punctul_destinatiei,
bibl[i].Nr_vagon,bibl[i].Nr_locuri,bibl[i].Pretul);

printf("Preturile mai mari decit media sunt:\n");


media=(bibl[0].Pretul+bibl[1].Pretul+bibl[2].Pretul)/3;
for(i=0;i<3;i++)
if(bibl[i].Pretul>media)
printf("%i).Trenul de la %s spre %s cu %i vag si %i loc , pretul este de %.2f lei
\n",i,bibl[i].Punctul_pornire,bibl[i].Punctul_destinatiei,
bibl[i].Nr_vagon,bibl[i].Nr_locuri,bibl[i].Pretul);
}

In sirul s1….sn sa se inlocuiasca semnul “!” cu semnul”.”


#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
int n,i,j,t;
char s[200];
main()
{
puts("Dati sirul:\n");
gets(s);
for(i=0;s[i]!=',';i++){
if(s[i]=='!')s[i]='.';
}

for(i=0;s[i]!='\0';i++){if(s[i]==',')j=i;}
for(;s[j]!=';';j++){
if(s[j]=='!')s[j]='.';
}
for(i=0;s[i]!='\0';i++)printf("%i",i%10);
printf("\n%s",s);
}

Calculati folosind functiile recursive


1+1/a^2+1/a^4+…+1/a^2n

#include<stdlib.h>
#include<math.h>
#include<stdio.h>
#include<conio.h>
float recursive_sum(float sum, float a, int n);
int main()
{
// 1 + 1/a^2 + 1/a^4+ ... + 1/a^2n;
recursive_sum(0.0, 3.0, 3);
//printf('SUM = %d', result );

return 0;
}

float recursive_sum( float sum, float a, int n){

float current = 1.0 / pow( a, 2*n );

sum = sum + current;


printf("SUM= %f, N = %d, \n", sum, n);

if( n == 0){
return sum;
}

n = n-1;
return recursive_sum(sum, a, n);
}

Afisati numele ,prenumele,postul ,salariul lucratorului folosind structuri de date

#include<stdio.h>
#include<conio.h>

struct lucrator {
char numele[10];
char prenumele[10];
char postul[10];
int salariu;
};
struct anul_angajarii{ struct lucrator an;
int data;
int luna;
int anul;
};
main()
{
struct anul_angajarii lucr[3];
int i,n=1;
for (i=0; i<n; i++)
{
puts("Introduce numele angajatorului:");
scanf("%s", &lucr[i].an.numele);
puts("Introduce prenumele:");
scanf ("%s", &lucr[i].an.prenumele);

puts("Introduce postul:");
scanf("%s", &lucr[i].an.postul);

puts("Introduce data angajarii:");


scanf ("%i", &lucr[i].data);

puts("Introduce luna angajarii:");


scanf("%i", &lucr[i].luna);

puts("Introduce anul angajarii:");


scanf("%i", &lucr[i].anul);

puts("Salariul:");
scanf("%i", &lucr[i].an.salariu);
}
for (i=0; i<n; i++)
printf ("Numele Prenumele:%s %s postul:%s data/luna/anul:%i/%i/%i salariul:%i \n",
lucr[i].an.numele, lucr[i].an.prenumele, lucr[i].an.postul, lucr[i].data, lucr[i].luna, lucr[i].anul,
lucr[i].an.salariu);
}

Structuri de date:

#include<stdio.h>
#include<conio.h>
#include<math.h>

struct tren{char punct_pornire[15]; char punct_sosire[15]; char tip_tren[15]; float nrloc; float
pretbil; };
void intr(struct tren x[])
{
int i; for (i=0; i<1; i++) {
puts("intr locul pornire:"); scanf("%s",&x[i].punct_pornire);
puts("Intr punctul sosire:"); scanf("%s",&x[i].punct_sosire);
puts("intr tipul trenului:"); scanf("%s",&x[i].tip_tren);
puts("intr nr. locurilor:"); scanf("%f",&x[i].nrloc);
puts("intr pret:"); scanf("%f",&x[i].pretbil); } }

void afis(struct tren x[])


{
int i; for (i=0; i<1; i++)
printf("punctul de pornire=%s soseste in=%s tipul trenului este=%s nr de locuri in tren=%.2f
pretul biletului=%.2f\n",
x[i].punct_pornire,x[i].punct_sosire,x[i].tip_tren,x[i].nrloc,x[i].pretbil);
}

void main() {
int a,p;
p: {
struct tren a[10];
intr( a);
afis( a);
printf("Doriti inca o inregistrare?\n");
scanf("%d",&a);
if (a > 0) goto p;
}
}

Sa se afiseze un sir de carácter cu ajutorul pointerilor

#include<stdio.h>
#include<string.h>
#include<conio.h>
void afiseaza_prin_indici(char *sir){
int k;
printf("\n sirul afisat utilizandu-se tablou ci indice: ");
for(k=0; sir[k]; ++k)
putchar(sir[k]);
}
void afiseaza_prin_pointer(char *s){
printf("\n sirul afisat utilizandu-se pointeri: ");
while(*s)
putchar(*s++);
}
void main(void){
char sirdat[20];
printf("\n dati un sir de max 20 caractere:");
gets(sirdat);
afiseaza_prin_indici(sirdat);
afiseaza_prin_pointer(sirdat);
getch();
}

You might also like