Bazele Programarii Procedurale

Problem 1

Sa se scrie un program care citeste doua valori reale ( a, b) si un caracter reprezentand un operator ( +, -, *) si efectueaza calculul indicat de acest operator cu valorile citite in variabilele a si b. Se afiseaza rezultatul.

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

void main() {
	// declarare si initializare variabile
	float a = 0, b = 0, rezultat = 0;
	char operatie = ' ';

	// citeste primul numar
	printf("Nr. 1: ");
	scanf("%f", &a);

	// citeste al doilea numar
	printf("Nr. 2: ");
	scanf("%f", &b);

	// citire operator
	printf("op= ");
	operatie = _getch();
	printf("%c", operatie);

	// calculare rezultat in functie de operator
	switch (operatie) {
	case '+':
		rezultat = a + b;
		break;
	case '-':
		rezultat = a - b;
		break;
	case '*':
		rezultat = a * b;
		break;
	default:
		printf("Operator nedefinit!\n");
		break;
	}

	printf("\n");

	// afisare rezultat
	if (operatie == '+' || operatie == '-' || operatie == '*') {
		printf("%.2f %c %.2f = %.2f\n", a, operatie, b, rezultat);
	}
	else {
		printf("Nu se poate efectua operatia!\n");
	}

	_getch();
}
Problem 2

Sa se scrie un program ce stabileste daca un numar n intreg este sau nu prim.

#pragma once

// returneaza 1 daca numarul este prim, 0 altfel
int estePrim(int *numar);


int estePrim(int *numar) {
	int divizor = 0;
	for (divizor = 2; divizor <= (int)sqrtf(*numar); divizor++) {
		if ((*numar) % divizor == 0) {
			// am gasit un divizor propriu
			return 0;
		}
	}
	return 1;
}
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include "chapter3-problem2.h"

void main() {
	// declarare si initializare numar
	int numar = 0;

	// citire numar
	printf("numar= ");
	scanf("%d", &numar);

	// determinare daca este prim
	if (estePrim(&numar)) {
		printf("Numarul %d este prim.\n", numar);
	}
	else {
		printf("Numarul %d NU este prim.\n", numar);
	}

	_getch();
}
Problem 3

Sa se calculeze suma primelor n numere naturale.

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

void main() {
	// declarare si initializare variabile
	int nr = 0, i = 0;
	long suma = 0;

	// citire numar
	printf("Numar: ");
	scanf("%d", &nr);

	// calculare suma
	suma = (nr * (nr + 1)) / 2;

	// afisare suma
	printf("Suma primelor %d numere naturale este: %d\n", nr, suma);

	_getch();
}
Problem 4

Sa se scrie un program in C pentru calcularea valorii n!. n se citeste de la tastatura.

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

void main() {
	// declarare si initializare variabile
	int nr = 0, i = 0;
	long long fact = 1;

	// citire numar
	printf("nr= ");
	scanf("%d", &nr);

	if (nr > 0) {
		// calculare factorial
		for (i = 2; i <= nr; i++) {
			fact *= i;
		}
		printf("%d! = %d\n", nr, fact);
	}
	else {
		printf("Nu se poate efectua operatia. (numarul este negativ)\n");
	}

	_getch();
}
Problem 5

Sa se scrie un program in C pentru calcularea sumei primelor n numere naturale. n se citeste de la tastatura.

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

void main() {
	// declarare si initializare variabile
	int nr = 0, i = 0;
	long suma = 0;

	// citire numar
	printf("nr= ");
	scanf("%d", &nr);

	// calculare suma
	suma = (nr * (nr + 1)) / 2;

	// afisare suma
	printf("Suma este: %d\n", suma);

	_getch();
}
Take the test