PROGRAMACION EN LENGUAJE C: EJERCICIOS RESUELTOS CON ARRAYS O ARREGLOS Y CICLOS FOR Y WHILE (CU00540F)

Documentos relacionados
Ejemplos de uso de forms, labels, inputbox y msgbox en Visual Basic. (CU00332A)

Ejercicios resueltos con acumuladores. Pseudocódigo y diagramas de flujo. Bucle desdesiguiente (for-next). (CU00160A)

EJERCICIOS DE PROGRAMACIÓN EN C. DIBUJAR UN ROMBO O DIAMANTE. CALCULAR SUMATORIOS. (CU00542F)

Ejercicios resueltos con pseudocódigo y diagramas de flujo. Bucles for-next y while-do. (CU00161A)

EJERCICIOS BÁSICOS DE PROGRAMACIÓN EN C RESUELTOS. VARIABLES, PRINTF, SCANF, CÁLCULOS. (CU00527F)

AMBITO DE VARIABLES EN C. GLOBALES Y LOCALES. UNDECLARED (FIRST USE IN THIS FUNCTION). EJEMPLOS (CU00548F)

Ejercicios resueltos Visual Basic y.net con arrays (arreglos), Do While, For, mod, ficheros, Ubound. Cálculo serie numérica (CU00344A)

Ejercicios ejemplos resueltos con Desde-Siguiente (For-next) y arrays en pseudocódigo y diagramas de flujo. (CU00154A)

Ejercicio ejemplo resuelto: verificar el algoritmo de resolución de una ecuación de segundo grado. (CU00237A)

PASO DE PARÁMETROS O ARGUMENTOS EN C. POR DEFECTO, POR VALOR O POR REFERENCIA. SIZEOF MEMORIA (CU00550F)

Ejercicios ejemplo: verificación de algoritmos del valor suma de una sucesión matemática. (CU00238A)

Ejercicio resuelto: variante para ordenar una serie de números. Pseudocódigo y diagrama de flujo. (CU00262A)

Ejercicio resuelto con tabla de decisión. Tarjetas. Pseudocódigo y diagramas de flujo. (CU00258A)

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Lenguaje C Bucles, Condicionales, operadores y Algoritmos.

4.- Leer tres números y escribirlos en orden decreciente

Ejercicio ejemplo resuelto de uso de arrays (arreglos) dinámicos en pseudocódigo I (CU00214A)

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)

Funciones básicas del depurador

COMPARAR CADENAS CON PHP STRCMP, == Ó ===? NO DISTINGUIR MAYÚSCULAS O MINÚSCULAS: STRCASECMP. RELLENAR CON STR_PAD. (CU00829B)

PSEUDOCÓDIGO. En este documento se recopilan los elementos conceptuales esenciales acerca PSEUDOCÓDIGO en la programación.

Fundamentos de programación

Resolución de problemas mediante algoritmos

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

Estructuras de Repetición (Hacer-Mientras)

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

Instrucciones Si... Entonces y Si... Entonces SiNo (if then else) en pseudocódigo (CU00142A)

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

EJERCICIOS RESUELTOS. EJEMPLOS CON NÚMEROS ALEATORIOS EN JAVA. RANDOM NEXTINT, NEXTDOUBLE, ETC. (CU00909C)

TEMA 4. ESTRUCTURAS DE CONTROL

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

Formatos para prácticas de laboratorio

Parte I: Ejemplos de problemas que se resuelven usando una tabla de decisión en programación (CU00113A)

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

Problema de tiro parabólico. Ejercicio resuelto. Planteamiento y pseudocódigo. (CU00252A)

Visual Basic: procedimientos Sub y funciones Function. Tipos de parámetros y tipos de retorno. Ejemplos (CU00340A)

Estructuras de Control

LEER Y ESCRIBIR ARCHIVOS DE TEXTO CON PHP. FUNCIONES FOPEN (MODOS), FGETS, FPUTS, FCLOSE Y FEOF. EJEMPLOS (CU00836B)

ESTRUCTURAS REPETITIVAS

Manejo de módulos y recursión en programación. Pseudocódigo. (CU00204A)

Arrays dinámicos y arrays estáticos con Visual Basic y.net. Redim, Redim Preserve, Erase. Ejemplos (CU00342A)

Estructuras de Repetición (Repita para)

6.1.- Introducción a las estructuras de datos Tipos de datos Arrays unidimensionales: los vectores Operaciones con vectores.

Prof. Dr. Paul Bustamante

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información 1º año

CREAR TABLAS EN BASES DE DATOS CON phpmyadmin. TIPOS DE DATOS BÁSICOS (VARCHAR, INT, FLOAT). INSERTAR FILAS. (CU00840B)

Indice del curso básico programación desde cero Visual Basic Nivel I (CU00302A)

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

fundamentos de programación (unidad 4) programación estructurada en Java

Informática I. While & do While

REPASO ARRAYS MULTIDIMENSIONALES EN JAVA. DECLARACIÓN Y USO. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00905C)

Guía práctica de estudio 03: Algoritmos

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Estructuras de control

Uso de centinelas para la toma de decisiones. Esquemas y diagramas de flujo. Ejemplos resueltos. (CU00167A)

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

Operadores lógicos y de comparación en programación. Not, and, or Ejemplos. (CU00132A)

LENGUAJE DE PROGRAMACION UNO.

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

PROCESADORES DE LENGUAJE. Hoja de ejercicios de FLEX

Escuela Politécnica Superior de Elche

Hoja de ejercicios del Tema 3

RESULTADOS PARA LA PRUEBA: 139

EXAMEN PARCIAL TRABAJO INTEGRADOR (TI) EVALUACIÓN CONTINUA PESO PORCENTUAL PESO PORCENTUAL 1 30% 06-MAY-14 30% 03-MAY-14 20% 20%

Guía práctica de estudio 03: Algoritmos

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

Estructuras de Decisión Simples y Dobles

= RETURN =3 7-. ELSE K

Problemas en programación que se resuelven recurriendo a una tabla de decisión y su algoritmia (CU00112A)

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Buttons (Command Buttons) en Visual Basic. Propiedades y ejemplos. Código asociado a eventos. (CU00321A)

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

Tema 9. Algoritmos sobre listas. Programación Programación - Tema 9: Algoritmos sobre listas

DOCUMENTO INFORMATIVO PARA CENTROS PRIVADOS

Elementos de un programa en C

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

ENVÍO DE DATOS DE UN FORMULARIO CON PHP. MÉTODOS GET Y POST. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00832B)

UNIVERSIDAD DE ESPECIALIDADES ESPÍRITU SANTO FACULTAD DE INGENIERIA DE SISTEMAS Y TELECOMUNICACIONES SYLLABUS

LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE

Unidad 1. Análisis de algoritmos.

Contenido. Capítulo 1. Introducción a lenguaje C 1

Lenguaje de programación C. Introducción

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

ESTRUCTURAS CONDICIONALES SIMPLES: ESTRUCTURAS CONDICIONALES DOBLES: ESTRUCTURAS CONDICIONALES ANIDADAS:

Ejercicio de algoritmia resuelto con Visual Basic: ordenar series de series de números. (CU00356A)

Visual Basic y.net: Procedimientos Sub y funciones Function. Parámetros. Organizar programas en módulos. (CU00338A)

Fundamentos de Programación Visual Basic

Editor de código Visual Basic. Lista de miembros automática, sugerencias de sintaxis, autocompletado y otras opciones. (CU00313A)

1 Acceso al Sistema de Gestión

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Vectores. 27/05/05 Programación Digital I 1

PROGRAMACION / Clave: 11214

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P. Ingeniería de Sistemas e Informática NETBEANS 7.0 MI PRIMER PROYECTO

PHP INSERT INTO VALUES. INSERTAR DATOS (REGISTROS O FILAS) EN BASE DE DATOS MySQL. EJEMPLOS Y EJERCICIO RESUELTO (CU00843B)

Informática Ingeniería en Electrónica y Automática Industrial

Transcripción:

APRENDERAPROGRAMAR.COM PROGRAMACION EN LENGUAJE C: EJERCICIOS RESUELTOS CON ARRAYS O ARREGLOS Y CICLOS FOR Y WHILE (CU00540F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde cero Fecha revisión: 2031 Resumen: Entrega nº40 del curso básico Programación C desde cero. Autor: Mario Rodríguez Rancel

EJERCICIO Nº1: ENUNCIADO Transformar en código el pseudocódigo que se muestra a continuación, relativo a un fichero con notas de 35 alumnos del que se quieren extraer datos estadísticos (% de aprobados, % de suspensos, número de alumnos con puntuación 10 y número de alumnos con puntuación 0). Considerar que los datos se encuentran en un fichero cuyo nombre es notas.dat. Razonar la lógica del programa. 1. Inicio [Algoritmo Notas de clase aprenderaprogramar.com] 2. Desde i = 1 hasta 35 Hacer 2.1 Leer Nota(i) 2.2 Si Nota(i) >= 5 Entonces Aprobados = Aprobados + 1 SiNo Suspensos = Suspensos + 1 FinSi 2.3 Si Nota(i) = 10 Entonces Dieces = Dieces + 1 FinSi 2.4 Si Nota(i) = 0 Entonces Ceros = Ceros + 1 FinSi Siguiente 3. Mostrar % de aprobados es, (Aprobados / 35) * 100 4. Mostrar % de suspensos es, (Suspensos / 35) * 100 5. Mostrar Obtienen un 10 un total de, Dieces, alumnos 6. Mostrar Obtienen un 0 un total de, Ceros, alumnos 7. Fin EJERCICIO Nº1: SOLUCIÓN Vamos a considerar un archivo que contenga los siguientes datos (nosotros usaremos un fichero donde habrá un dato en cada línea. Aquí los ponemos separados por guiones por motivos de espacio): 6 7 8 5 6 4 7 8 7 10 0 5 6 7 6 5 0 7 8 10 2 3 4 5 6 7 6 5 4 10 4 3 2 3 4 El código sería el siguiente:

#define NumeroAlumnos 35 double nota[numeroalumnos]; //35 elementos numerados de 0 a 34 double aprobados; double suspensos; int dieces = 0; int ceros = 0; int i=0; puts ("Programa Notas de clase \n"); //Extracción de datos de archivo FILE* fichero; fichero = fopen("c:\\notas.dat", "rt"); for (i=0; i<=numeroalumnos-1; i++) { fscanf (fichero, "%lf", &nota[i] ); if (nota[i] >= 5) { aprobados = aprobados + 1; else { suspensos = suspensos + 1; if (nota[i] == 10) { dieces = dieces + 1; if (nota[i] == 0) { ceros = ceros + 1; fclose(fichero); printf ("Porcentaje de aprobados es %lf %% \n", (aprobados/numeroalumnos)*100); printf ("Porcentaje de suspensos es %lf %% \n", (suspensos/numeroalumnos)*100); printf ("Obtienen un 10 un total de %d alumnos \n", dieces); printf ("Obtienen un 0 un total de %d alumnos \n", ceros); return 0; // Ejercicios resueltos programacion C aprenderaprogramar.com El resultado de ejecución del programa para los datos indicados como ejemplo sería: Programa Notas Porcentaje de aprobados es 65.714286 % Porcentaje de suspensos es 34.285714 % Obtienen un 10 un total de 3 alumnos Obtienen un 0 un total de 2 alumnos El bucle se puede plantear igualmente con un do while (condición). Este sería el código del bucle (el resto del código se mantendría igual):

do { fscanf (fichero, "%lf", &nota[i] ); printf ("Nota %d extraida: %lf \n", i, nota[i]); if (nota[i] >= 5) { aprobados = aprobados + 1; else { suspensos = suspensos + 1; if (nota[i] == 10) { dieces = dieces + 1; if (nota[i] == 0) { ceros = ceros + 1; i++; //Ejemplo aprenderaprogramar.com while (i<=34); // También válido i<35 EJERCICIO Nº2: ENUNCIADO Se desea crear un programa que calcule la nota media de un grupo de 35 alumnos, a partir de los datos de notas contenidos en un fichero. Usar como archivo de datos el mismo que para el ejercicio anterior. EJERCICIO Nº2: SOLUCIÓN #define NumeroAlumnos 35 // Ejercicios 1.1.1.1.1.1.1.1.1 resueltos programacion C aprenderaprogramar.com double nota[numeroalumnos]; //35 elementos numerados de 0 a 34 double sumatorio = 0; double media = 0; int i=0; puts ("Programa Calcular Notas Medias \n"); //Extracción de datos de archivo FILE* fichero; fichero = fopen("c:\\notas.dat", "rt"); for (i=0; i<=numeroalumnos-1; i++) { fscanf (fichero, "%lf", &nota[i] ); sumatorio = sumatorio + nota[i]; fclose(fichero); media = sumatorio / NumeroAlumnos; printf ("La nota media de la clase es %lf \n", media); return 0; El resultado de ejecución del programa para los datos de ejemplo sería el siguiente: Programa Calcular Notas Medias La nota media de la clase es 5.428571 Process returned 0 (0x0) execution time : 0.046 s Press any key to continue.

EJERCICIO Nº3: ENUNCIADO Una central distribuye cal hacia diferentes almacenes sucursales. Disponen de un muelle de carga a donde van llegando sacas de cal de entre 3000 y 9000 Kgs, con pesos variables en función de las circunstancias de la producción. La empresa dispone de una flota de camiones con capacidades de carga de entre 18000 y 28000 Kgs. Se pretende establecer un protocolo consistente en cargar 20 camiones diarios. Cada camión se quiere cargar como máximo a su límite de capacidad debiendo partir si con la siguiente saca en la línea de producción se fuera a exceder su capacidad. La empresa quiere desarrollar un programa que le pida al operario encargado de carga la capacidad del camión y el peso de las sacas, indicándole si debe cargar la saca o despachar el camión para comenzar a cargar otro. Nota: este ejercicio fue resuelto en pseudocódigo, donde además tenemos ejemplos numéricos que nos pueden permitir verificar que el programa funcione correctamente. EJERCICIO Nº3: SOLUCIÓN El código se incluye a continuación. Un posible resultado de ejecución es (los datos que hemos introducido son: Capacidad de camiones: número 1: 22000 kgs, número 2: 18000 kgs, número 3: 18000 kgs, número 4: 20000 kgs, número 5: 28000 kgs. Peso de las sacas: nº1: 3000 kgs, nº2: 5000 kgs, nº3: 9000 kgs, nº4: 3000 kgs, nº5: 3000 kgs, nº6: 8000 kgs, nº7: 9000 kgs, nº8: 7000 kgs, nº9: 7000 kgs, nº10: 9000 kgs, nº11: 4000 kgs, nº12: 5000 kgs ( continuaría hasta alcanzar el límite diario): Programa distribucion de cal Introduzca la capacidad del camion numero 1 en kgs: 22000 Introduzca el peso de la saca numero 1 en kgs: 3000 Cargue la saca numero 1. Introduzca el peso de la saca numero 2 en kgs: 5000 Cargue la saca numero 2 Introduzca el peso de la saca numero 3 en kgs: 9000 Cargue la saca numero 3 Introduzca el peso de la saca numero 4 en kgs: 3000 Cargue la saca numero 4 Introduzca el peso de la saca numero 5 en kgs: 3000 No cargue todavia. Despache el camion numero 1 y ponga a cargar el camion numero 2 Introduzca la capacidad del camion numero 2 en kgs: 18000 Cargue la saca numero 5 Introduzca el peso de la saca numero 6 en kgs: 8000 Cargue la saca numero 6 Introduzca el peso de la saca numero 7 en kgs: 9000 No cargue todavia. Despache el camion numero 2 y ponga a cargar el camion numero 3 Introduzca la capacidad del camion numero 3 en kgs: 18000 Cargue la saca numero 7 Introduzca el peso de la saca numero 8 en kgs: 7000 Cargue la saca numero 8 Introduzca el peso de la saca numero 9 en kgs: 7000 No cargue todavia. Despache el camion numero 3 y ponga a cargar el camion numero 4

Introduzca la capacidad del camion numero 4 en kgs: 20000 Cargue la saca numero 9. Introduzca el peso de la saca numero 10 en kgs: 9000 Cargue la saca numero 10. Introduzca el peso de la saca numero 11 en kgs: 4000 Cargue la saca numero 11. Introduzca el peso de la saca numero 12 en kgs: 5000 No cargue todavia. Despache el camion numero 4 y ponga a cargar el camion numero 5 Introduzca la capacidad del camion numero 5 en kgs: 28000 Cargue la saca numero 12. Introduzca el peso de la saca numero 13 en kgs: (continuaría hasta terminar) // Ejercicios resueltos programacion C aprenderaprogramar.com int i = 0; int j = 0; int capacidad = 0; int pesosaca = 0; int cargado = 0; puts ("Programa distribucion de cal"); for (i =1; i<=20; i++) { printf ("Introduzca la capacidad del camion numero %d en kgs: ", i); scanf ("%d", &capacidad); while (cargado + pesosaca <= capacidad) { if (pesosaca >0) { printf ("Cargue la saca numero %d \n", j); cargado = cargado + pesosaca; j = j+1; printf ("Introduzca el peso de la saca numero %d en kgs: ", j); scanf ("%d", &pesosaca); //Cierre del while if (i<20) { printf ("No cargue todavía. Despache el camion numero %d y ponga a cargar el camion numero %d \n", i, i+1); cargado = 0; //Cierre del for printf ("No cargue esta saca. Despache el camion numero %d. FINALIZADA LA CARGA DEL DIA", i-1 ); return 0; EJERCICIO Nº4: ENUNCIADO Una ONG tiene puntos de reparto de vacunas que se pretende funcionen de la siguiente manera. Cada día, empezar con 1000 vacunas disponibles y a través de un programa que controla las entregas avisar si el inventario baja de 200 unidades. El pseudocódigo para el programa es el indicado a continuación. Razonar la lógica de este pseudocódigo y crear un programa a partir de él. 1. Inicio [Control de Vacunas ejemplo aprenderaprogramar.com] 2. Existencias = 1000 3. Mientras Existencias >= 200 Hacer Mostrar Introduzca el número de unidades entregadas Pedir Entregadas Existencias = Existencias Entregadas Repetir 4. Mostrar El inventario ha bajado de 200 unidades. Debe comunicarlo 5. Fin

EJERCICIO Nº4: SOLUCIÓN int existencias; int entregadas; puts ("Programa control de vacunas\n"); existencias = 1000; while (existencias >=200) { printf ("Introduzca el numero de unidades entregadas: "); scanf ("%d", &entregadas); existencias = existencias - entregadas; // Ejercicios resueltos programacion C aprenderaprogramar.com puts("\naviso. El inventario ha bajado de 200 uds. Debe comunicarlo."); return 0; Este podría ser un resultado de ejecución: Programa control de vacunas Introduzca el numero de unidades entregadas: 350 Introduzca el numero de unidades entregadas: 100 Introduzca el numero de unidades entregadas: 250 Introduzca el numero de unidades entregadas: 150 Aviso. El inventario ha bajado de 200 uds. Debe comunicarlo. EJERCICIO Crea un programa que usando bucles nos permita pedir un número par comprendido entre 100 y 200 y nos muestre todos los números pares comprendidos entre el número facilitado y 200. Por ejemplo si el número facilitado es 192 nos debería mostrar 192, 194, 196, 198 y 200. Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com. Próxima entrega: CU00541F Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://www.aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&itemid=210