Bazele Programarii Procedurale

Problem 1

Realizati un program ce afiseaza bitul de pe o pozitie data a unui numar intreg.

#pragma once

// converteste un numar in binar
void toBinary(int n);


void toBinary(int n) {
	if (n / 2 != 0) {
		toBinary(n / 2);
	}
	printf("%d", n % 2);
}
#include <stdio.h>
#include <conio.h>
#include "chapter2-problem1.h"

void main() {
	// declarare si initializare variabile
	int numar = 0, pozitie = 0, mask = 1, bit = 0;

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

	// citire pozitie
	printf("Poz: ");
	scanf("%d", &pozitie);

	// calculare bit
	bit = (numar >> pozitie) & mask;

	printf("Reprezentarea in binar: ");
	toBinary(numar);

	// afisare bit
	printf("\nBitul de pe pozitia %d din numarul %d este: %d\n", pozitie, numar, bit);

	_getch();
}
Problem 2

Realizati un program ce afiseaza caracterul ASCII pentru un cod introdus de la tastatura.

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

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

	// citire cod ASCII
	printf("Cod ASCII: ");
	scanf("%d", &cod);

	// afisare
	printf("Caracterul corespunzator codului %d este: %c\n", cod, cod);

	_getch();
}
Problem 3

Scrieti un program in C pentru rezolvarea ecuatiei de gradul 1 cu coeficienti reali. Valorile coeficientilor se citesc de la tastatura. Solutia va fi afisata pe ecran, aliniata la dreapta, cu exact 2 zecimale.

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

void main() {
	// declarere si initializare variabile
	float a = 0, b = 0, solutie = 0;

	// citire coeficienti
	printf("Introduceti coeficientii separati printr-un spatiu: ");
	scanf("%f %f", &a, &b);

	// calculare solutie
	solutie = -((float)b / a);

	// afisare solutie in formatul cerut
	printf("Solutia este: %8.2f\n", solutie);

	_getch();
}
Problem 4

Scrieti un program in C pentru rezolvarea ecuatiei de gradul 2 cu coeficienti reali. Valorile coeficientilor se citesc de la tastatura. Solutiile vor fi afisata pe ecran, aliniate la dreapta, cu exact 2 zecimale.

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

void main() {
	// declarare si initializare variabile
	float a = 0, b = 0, c = 0;
	double determinant = 0, x1 = 0, x2 = 0;

	// citire coeficienti
	printf("Introduceti coeficientii separati printr-un spatiu: ");
	scanf("%f %f %f", &a, &b, &c);

	// calculare determinant
	determinant = pow(b, 2) - 4 * a * c;

	// afisare determinant
	printf("Determinantul este: %g\n", determinant);

	// calculare solutie 1
	x1 = (-b + sqrtl(determinant)) / (2 * a);
	// calculare solutie 2
	x2 = (-b - sqrtl(determinant)) / (2 * a);

	// afisare solutii
	printf("Solutiile ecuatiei sunt: %8.2f si %8.2f\n", x1, x2);

	_getch();
}
Problem 5

Scrieti un program in C pentru conversia unui unghi din grade in radiani. Solutia va fi afisata pe ecran, aliniata la dreapta, cu exact 2 zecimale.

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

// definirea valorii lui pi
#define PI 3.141592653589793238

void main() {
	// declararea si initializarea variabilelor
	float grade = 0;
	double radiani = 0;

	// citire unchi in grade
	printf("Dati unghiul in grade: ");
	scanf("%f", &grade);

	// calculare echivalent in radiani
	radiani = (PI / 180.0) * grade;

	// afisare valori
	printf("Grade:\t%8.2f\nRadiani:%8.2f\n", grade, radiani);

	_getch();
}
Problem 6

Realizarea de programe pentru a ilustra tipurile de date precum si operatiunile care se pot face cu acestea.

#pragma once

// afiseaza tabela ASCII a caracterelor printabile
void afisareTabelaASCII();

// converteste un numar in binar
void toBinary(int numar);


void afisareTabelaASCII() {
	int i = 0;
	
	printf("\n\tPrintable ASCII Table\n\n");
	for (i = 32; i < 127; i++) {
		printf("\t%c\t%d\n", i, i);
	}
}

void toBinary(int numar) {
	if (numar / 2 != 0) {
		toBinary(numar / 2);
	}
	printf("%d", numar % 2);
}
#include <stdio.h>
#include <conio.h>
#include "chapter2-problem6.h"

void main() {

	afisareTabelaASCII();

	printf("\n\nNumarul 25 in binar este: ");
	toBinary(25);

	_getch();
}
Take the test