Sistematico 2 de Programacion

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 16

Universidad nacional de ingeniería

2 evaluación de programación

Integrantes:

 Adriana cordonero.
 Jimena Méndez.

Diseñe un algoritmo para cada caso, use Visual Studio o Visual Studio Code
para modelar el diagrama los algoritmos, recuerde la estructura básica de un
programa. los algoritmos con Visual Studio o Visual Studio Code

void calcular_total() {

char nombre_cliente[50];

int cantidad;

float precio;

char tipo_cliente;

float subtotal, descuento, impuesto, total;

printf("Ingrese el nombre del cliente: ");

scanf("%s", nombre_cliente);

printf("Ingrese la cantidad del producto: ");

scanf("%d", &cantidad);

printf("Ingrese el precio del producto: ");

scanf("%f", &precio);

printf("Ingrese el tipo de cliente (A/B): ");

scanf(" %c", &tipo_cliente);

subtotal = cantidad * precio;


if (tipo_cliente == 'A' || cantidad > 100) {

descuento = subtotal * 0.10;

} else {

descuento = subtotal * 0.05;

impuesto = (subtotal - descuento) * 0.15; // Suponiendo un impuesto del 15%

total = subtotal - descuento + impuesto;

printf("Cliente: %s\n", nombre_cliente);

printf("Subtotal: %.2f\n", subtotal);

printf("Descuento: %.2f\n", descuento);

printf("Impuesto: %.2f\n", impuesto);

printf("Total a pagar: %.2f\n", total);

void calcular_notas() {

char nombre_alumno[50];

float nota_examen, nota_acumulada, nota_final;

int aprobados = 0, reprobados = 0;

char continuar;

do {

printf("Ingrese el nombre del alumno: ");

scanf("%s", nombre_alumno);

printf("Ingrese la nota del examen: ");

scanf("%f", &nota_examen);

printf("Ingrese la nota acumulada: ");

scanf("%f", &nota_acumulada);
nota_final = (nota_examen + nota_acumulada) / 2;

if (nota_final >= 60) {

printf("Alumno: %s\n", nombre_alumno);

printf("Nota final: %.2f\n", nota_final);

printf("Observación: Aprobado\n");

aprobados++;

} else {

printf("Alumno: %s\n", nombre_alumno);

printf("Nota final: %.2f\n", nota_final);

printf("Observación: Reprobado\n");

reprobados++;

printf("¿Desea continuar? (s/n): ");

scanf(" %c", &continuar);

} while (continuar == 's');

printf("Número de aprobados: %d\n", aprobados);

printf("Número de reprobados: %d\n", reprobados);

void sumar_consecutivos() {

int inicio, suma = 0;

printf("Ingrese el número inicial: ");

scanf("%d", &inicio);

for (int i = inicio; i < inicio + 100; i++) {


suma += i;

printf("La suma de 100 números consecutivos a partir de %d es: %d\n", inicio, suma);

void sumar_pares() {

int n, suma = 0;

printf("Ingrese el número de términos pares a sumar: ");

scanf("%d", &n);

for (int i = 1; i <= n; i++) {

suma += 2 * i;

printf("La suma de los primeros %d números pares es: %d\n", n, suma);

void verificar_clave() {

char clave_correcta[] = "eureka";

char clave[50];

int intentos = 3;

while (intentos > 0) {

printf("Ingrese la clave: ");

scanf("%s", clave);

if (strcmp(clave, clave_correcta) == 0) {

printf("¡Clave correcta!\n");
return;

} else {

intentos--;

printf("Clave incorrecta. Te quedan %d intentos.\n", intentos);

printf("Has agotado los 3 intentos.\n");

void contar_multiplos() {

int contador = 0;

for (int i = 1; i <= 100; i++) {

if (i % 2 == 0 || i % 3 == 0) {

contador++;

printf("El número de múltiplos de 2 o 3 entre 1 y 100 es: %d\n", contador);

int main() {

int opcion;

do {

printf("\nSeleccione una opción:\n");

printf("1. Calcular total a pagar\n");

printf("2. Calcular nota final\n");


printf("3. Sumar 100 números consecutivos\n");

printf("4. Sumar N primeros números pares\n");

printf("5. Verificar clave\n");

printf("6. Contar múltiplos de 2 o 3 entre 1 y 100\n");

printf("7. Salir\n");

printf("Ingrese su opción: ");

scanf("%d", &opcion);

switch (opcion) {

case 1:

calcular_total();

break;

case 2:

calcular_notas();

break;

case 3:

sumar_consecutivos();

break;

case 4:

sumar_pares();

break;

case 5:

verificar_clave();

break;

case 6:

contar_multiplos();

break;

case 7:

printf("Saliendo...\n");
break;

default:

printf("Opción no válida. Intente de nuevo.\n");

} while (opcion != 7);

return 0;

[1:33 p.m., 23/9/2024] Esther: #include <stdio.h>

#include <math.h>

#include <stdbool.h>

#include <string.h>

// Funciones para el problema geométrico

typedef struct {

float x;

float y;

} Vector;

float distancia(Vector a, Vector b) {

return sqrt(pow(b.x - a.x, 2) + pow(b.y - a.y, 2));

bool es_triangulo(float a, float b, float c) {

return (a + b > c) && (a + c > b) && (b + c > a);

void tipo_triangulo(float a, float b, float c) {

if (a == b && b == c) {
printf("El triángulo es EQUILÁTERO\n");

} else if (a == b || a == c || b == c) {

printf("El triángulo es ISÓSCELES\n");

} else {

printf("El triángulo es ESCALENO\n");

void calcular_triangulo() {

Vector A, B, C;

printf("Ingrese las coordenadas del vector A (x y): ");

scanf("%f %f", &A.x, &A.y);

printf("Ingrese las coordenadas del vector B (x y): ");

scanf("%f %f", &B.x, &B.y);

printf("Ingrese las coordenadas del vector C (x y): ");

scanf("%f %f", &C.x, &C.y);

float AB = distancia(A, B);

float BC = distancia(B, C);

float CA = distancia(C, A);

if (es_triangulo(AB, BC, CA)) {

float perimetro = AB + BC + CA;

printf("Los vectores forman un triángulo.\n");

printf("Perímetro: %.2f\n", perimetro);

tipo_triangulo(AB, BC, CA);

} else {

printf("Los Vectores no forman un Triángulo.\n");

}
}

// Función para la tabla de valores

void calcular_tabla() {

printf("N\tN^2\tN^3\tN^4\n");

for (int i = 1; i <= 10; i++) {

printf("%d\t%d\t%d\t%d\n", i, i*i, i*i*i, i*i*i*i);

// Clases y funciones anteriores con getters y setters

typedef struct {

char nombre[50];

int cantidad;

float precio;

char tipo;

} Cliente;

float get_subtotal(Cliente *cliente) {

return cliente->cantidad * cliente->precio;

float get_descuento(Cliente *cliente) {

if (cliente->tipo == 'A' || cliente->cantidad > 100) {

return get_subtotal(cliente) * 0.10;

} else {

return get_subtotal(cliente) * 0.05;

}
float get_impuesto(Cliente *cliente) {

return (get_subtotal(cliente) - get_descuento(cliente)) * 0.15;

float get_total(Cliente *cliente) {

return get_subtotal(cliente) - get_descuento(cliente) + get_impuesto(cliente);

void calcular_total() {

Cliente cliente;

printf("Ingrese el nombre del cliente: ");

scanf("%s", cliente.nombre);

printf("Ingrese la cantidad del producto: ");

scanf("%d", &cliente.cantidad);

printf("Ingrese el precio del producto: ");

scanf("%f", &cliente.precio);

printf("Ingrese el tipo de cliente (A/B): ");

scanf(" %c", &cliente.tipo);

printf("Cliente: %s\n", cliente.nombre);

printf("Subtotal: %.2f\n", get_subtotal(&cliente));

printf("Descuento: %.2f\n", get_descuento(&cliente));

printf("Impuesto: %.2f\n", get_impuesto(&cliente));

printf("Total a pagar: %.2f\n", get_total(&cliente));

typedef struct {

char nombre[50];
float nota_examen;

float nota_acumulada;

} Alumno;

float get_nota_final(Alumno *alumno) {

return (alumno->nota_examen + alumno->nota_acumulada) / 2;

const char* get_observacion(Alumno *alumno) {

return get_nota_final(alumno) >= 60 ? "Aprobado" : "Reprobado";

void calcular_notas() {

Alumno alumno;

int aprobados = 0, reprobados = 0;

char continuar;

do {

printf("Ingrese el nombre del alumno: ");

scanf("%s", alumno.nombre);

printf("Ingrese la nota del examen: ");

scanf("%f", &alumno.nota_examen);

printf("Ingrese la nota acumulada: ");

scanf("%f", &alumno.nota_acumulada);

printf("Alumno: %s\n", alumno.nombre);

printf("Nota final: %.2f\n", get_nota_final(&alumno));

printf("Observación: %s\n", get_observacion(&alumno));


if (strcmp(get_observacion(&alumno), "Aprobado") == 0) {

aprobados++;

} else {

reprobados++;

printf("¿Desea continuar? (s/n): ");

scanf(" %c", &continuar);

} while (continuar == 's');

printf("Número de aprobados: %d\n", aprobados);

printf("Número de reprobados: %d\n", reprobados);

void sumar_consecutivos() {

int inicio, suma = 0;

printf("Ingrese el número inicial: ");

scanf("%d", &inicio);

for (int i = inicio; i < inicio + 100; i++) {

suma += i;

printf("La suma de 100 números consecutivos a partir de %d es: %d\n", inicio, suma);

void sumar_pares() {

int n, suma = 0;

printf("Ingrese el número de términos pares a sumar: ");


scanf("%d", &n);

for (int i = 1; i <= n; i++) {

suma += 2 * i;

printf("La suma de los primeros %d números pares es: %d\n", n, suma);

void verificar_clave() {

char clave_correcta[] = "eureka";

char clave[50];

int intentos = 3;

while (intentos > 0) {

printf("Ingrese la clave: ");

scanf("%s", clave);

if (strcmp(clave, clave_correcta) == 0) {

printf("¡Clave correcta!\n");

return;

} else {

intentos--;

printf("Clave incorrecta. Te quedan %d intentos.\n", intentos);

printf("Has agotado los 3 intentos.\n");

}
void contar_multiplos() {

int contador = 0;

for (int i = 1; i <= 100; i++) {

if (i % 2 == 0 || i % 3 == 0) {

contador++;

printf("El número de múltiplos de 2 o 3 entre 1 y 100 es: %d\n", contador);

int main() {

int opcion;

do {

printf("\nSeleccione una opción:\n");

printf("1. Calcular total a pagar\n");

printf("2. Calcular nota final\n");

printf("3. Sumar 100 números consecutivos\n");

printf("4. Sumar N primeros números pares\n");

printf("5. Verificar clave\n");

printf("6. Contar múltiplos de 2 o 3 entre 1 y 100\n");

printf("7. Calcular si tres vectores forman un triángulo\n");

printf("8. Calcular tabla de valores\n");

printf("9. Salir\n");

printf("Ingrese su opción: ");

scanf("%d", &opcion);
switch (opcion) {

case 1:

calcular_total();

break;

case 2:

calcular_notas();

break;

case 3:

sumar_consecutivos();

break;

case 4:

sumar_pares();

break;

case 5:

verificar_clave();

break;

case 6:

contar_multiplos();

break;

case 7:

calcular_triangulo();

break;

case 8:

calcular_tabla();

break;

case 9:

printf("Saliendo...\n");

break;
default:

printf("Opción no válida. Intente de nuevo.\n");

} while (opcion != 9);

return 0;

}c

También podría gustarte