Logo Studenta

Introdução à Programação Vol. 2

¡Este material tiene más páginas!

Vista previa del material en texto

2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
AUTORES 
ING. YOLANDA ESCOBAR MANCILLA 
ING. JOSE LUIS FLORES MAMANI 
 
 
 
 
NUMERO DEPOSITO LEGAL: 4 – 1 – 2969 – 2022 
 
 
DISEÑO, DIAGRAMACIÓN E IMPRESO 
EN LOS TALLERES GRÁFICOS 
Creaciones PROGRAFIC 
CEL.: 67066679 – 742 74777 
 
 
 
 
PREFACIO 
El presente libro Introducción a la Programación Volumen 2, abarca las 
Estructuras Repetitivas, las mismas se utilizan para la ejecución de un conjunto de 
instrucciones en un determinado numero finito de veces, a esta operación se la 
llama bucles o ciclos. Conocer la teoría y la practica utilizando un lenguaje de 
programación es principal para la formación profesional del área de ingeniería, el 
presente libro toma como lenguajes de programación al lenguaje C y lenguaje 
java, así mismo el libro contempla el proceso para la resolución de un problema, 
partiendo del análisis del problema, elaboración del diagrama de flujo, 
demostrando la prueba de escritorio y codificando en lenguaje C y JAVA junto con 
la captura de salida en ambos lenguajes. 
La motivación sobre la elaboración de este libro, deriva en ofrecer un material 
educativo que incorpore los aspectos necesarios para la resolución de un 
problema hasta la salida de un programa por computadora escrito en lenguaje C o 
lenguaje JAVA, a través de ejemplo expresados de forma didáctica mediante una 
explicación clara y sucinta de los ejemplos resueltos en el libro. 
La introducción a la comprensión de las estructuras repetitivas comprende el 
funcionamiento y la sintaxis en ambos lenguajes de programación de los ciclos for, 
while y do-while, además aplicando los ciclos repetitivos, efectuar la resolución de 
series y sumatorias. 
Cada uno de los capítulos que conforman este libro, se exponen aspectos teóricos 
y prácticos, mediante ejemplo resueltos y su codificación en ambos lenguajes de 
programación que facilita el aprendizaje de la programación y refuerza los 
aspectos teóricos y prácticos de este presente libro. 
 
 
ÍNDICE 
CAPITULO I ............................................................................................................................ 7 
FUNDAMENTOS .................................................................................................................... 7 
1.1 DEFINICIÓN ................................................................................................................ 7 
1.2 ESTRUCTURA REPETITIVAS ................................................................................... 7 
Características ........................................................................................................................ 8 
1.2.1 Funcionamiento de un ciclo ................................................................................. 8 
1.2.2 Contador ............................................................................................................... 9 
1.2.3 Acumulador .......................................................................................................... 9 
CAPITULO II ......................................................................................................................... 12 
LENGUAJES DE PROGRAMACIÓN ................................................................................... 12 
2.1.1. Lenguaje ................................................................................................................. 12 
2.1.2. Lenguaje de Programación .................................................................................... 12 
2.1.3. Ejemplos de lenguajes de programación ............................................................... 12 
2.1.4. Componentes.......................................................................................................... 13 
2.2. LENGUAJE C ............................................................................................................ 13 
2.3. LENGUAJE JAVA ...................................................................................................... 13 
CAPITULO III ........................................................................................................................ 15 
CICLO WHILE (mientras) ..................................................................................................... 15 
3.1. DEFINICIÓN .............................................................................................................. 15 
3.2. SINTAXIS .................................................................................................................. 15 
3.3. REPRESENTACIÓN CICLO WHILE EN DIAGRAMA DE FLUJO ........................... 16 
EJEMPLO 01 ................................................................................................................. 17 
EJEMPLO 02 ................................................................................................................. 18 
EJEMPLO 03 ................................................................................................................. 20 
EJEMPLO 04 ................................................................................................................. 22 
EJEMPLO 05 ................................................................................................................. 24 
EJEMPLO 06 ................................................................................................................. 26 
EJEMPLO 07 ................................................................................................................. 28 
EJEMPLO 08 ................................................................................................................. 31 
EJEMPLO 09 ................................................................................................................. 34 
EJEMPLO 10 ................................................................................................................. 37 
EJEMPLO 11 ................................................................................................................. 39 
EJEMPLO 12 ................................................................................................................. 40 
6
 
EJEMPLO 13 ................................................................................................................. 43 
EJEMPLO 14 ................................................................................................................. 46 
8. SALIDA EN JAVA: ................................................................................................. 48 
EJEMPLO 15 ................................................................................................................. 48 
EJEMPLO 16 ................................................................................................................. 51 
CICLO DO-WHILE (hacer - mientras) .................................................................................. 56 
4.1. DEFINICIÓN .............................................................................................................. 56 
4.2. SINTAXIS .................................................................................................................. 56 
4.3. REPRESENTACIÓN CICLO DO-WHILE EN DIAGRAMA DE FLUJO .................... 57 
EJEMPLO 17 ................................................................................................................. 59 
EJEMPLO 18 ................................................................................................................. 60 
EJEMPLO 19 ................................................................................................................. 64 
EJEMPLO 20 ................................................................................................................. 67 
CAPITULO V ........................................................................................................................70 
CICLO FOR (para) ............................................................................................................... 70 
5.1. DEFINICIÓN .............................................................................................................. 70 
5.2. SINTAXIS .................................................................................................................. 70 
5.3. REPRESENTACIÓN CICLO FOR EN DIAGRAMA DE FLUJO ............................... 71 
EJEMPLO 21 .................................................................................................................... 72 
EJEMPLO 22 ................................................................................................................. 73 
EJEMPLO 23 ................................................................................................................. 75 
EJEMPLO 24 ................................................................................................................. 77 
EJEMPLO 25 ................................................................................................................. 78 
EJEMPLO 26 ................................................................................................................. 80 
EJEMPLO 27 ................................................................................................................. 82 
EJEMPLO 28 ................................................................................................................. 83 
EJEMPLO 29 ................................................................................................................. 85 
EJEMPLO 30 ................................................................................................................. 87 
EJEMPLO 31 ................................................................................................................. 88 
EJEMPLO 32 ................................................................................................................. 90 
EJEMPLO 33 ................................................................................................................. 93 
EJEMPLO 34 ................................................................................................................. 95 
EJEMPLO 35 ................................................................................................................. 97 
EJEMPLO 36 ............................................................................................................... 101 
 
EJEMPLO 13 ................................................................................................................. 43 
EJEMPLO 14 ................................................................................................................. 46 
8. SALIDA EN JAVA: ................................................................................................. 48 
EJEMPLO 15 ................................................................................................................. 48 
EJEMPLO 16 ................................................................................................................. 51 
CICLO DO-WHILE (hacer - mientras) .................................................................................. 56 
4.1. DEFINICIÓN .............................................................................................................. 56 
4.2. SINTAXIS .................................................................................................................. 56 
4.3. REPRESENTACIÓN CICLO DO-WHILE EN DIAGRAMA DE FLUJO .................... 57 
EJEMPLO 17 ................................................................................................................. 59 
EJEMPLO 18 ................................................................................................................. 60 
EJEMPLO 19 ................................................................................................................. 64 
EJEMPLO 20 ................................................................................................................. 67 
CAPITULO V ........................................................................................................................ 70 
CICLO FOR (para) ............................................................................................................... 70 
5.1. DEFINICIÓN .............................................................................................................. 70 
5.2. SINTAXIS .................................................................................................................. 70 
5.3. REPRESENTACIÓN CICLO FOR EN DIAGRAMA DE FLUJO ............................... 71 
EJEMPLO 21 .................................................................................................................... 72 
EJEMPLO 22 ................................................................................................................. 73 
EJEMPLO 23 ................................................................................................................. 75 
EJEMPLO 24 ................................................................................................................. 77 
EJEMPLO 25 ................................................................................................................. 78 
EJEMPLO 26 ................................................................................................................. 80 
EJEMPLO 27 ................................................................................................................. 82 
EJEMPLO 28 ................................................................................................................. 83 
EJEMPLO 29 ................................................................................................................. 85 
EJEMPLO 30 ................................................................................................................. 87 
EJEMPLO 31 ................................................................................................................. 88 
EJEMPLO 32 ................................................................................................................. 90 
EJEMPLO 33 ................................................................................................................. 93 
EJEMPLO 34 ................................................................................................................. 95 
EJEMPLO 35 ................................................................................................................. 97 
EJEMPLO 36 ............................................................................................................... 101 
 
EJEMPLO 38 ............................................................................................................... 103 
EJEMPLO 39 ............................................................................................................... 107 
EJEMPLO 40 ............................................................................................................... 109 
EJEMPLO 41 ............................................................................................................... 110 
EJEMPLO 42 ............................................................................................................... 112 
EJEMPLO 43 ............................................................................................................... 114 
EJEMPLO 44 ............................................................................................................... 116 
EJEMPLO 45 ............................................................................................................... 117 
EJEMPLO 46 ...............................................................................................................119 
EJEMPLO 47 ............................................................................................................... 121 
EJEMPLO 48 ............................................................................................................... 123 
EJEMPLO 49 ............................................................................................................... 125 
EJEMPLO 50 ............................................................................................................... 127 
EJEMPLO 51 ............................................................................................................... 130 
PROBLEMAS CON SUMATORIA ..................................................................................... 134 
EJEMPLO 52 ............................................................................................................... 137 
EJEMPLO 53 ............................................................................................................... 138 
EJEMPLO 54 ............................................................................................................... 141 
EJEMPLO 55 ............................................................................................................... 143 
EJEMPLO 56 ............................................................................................................... 145 
EJEMPLO 57 ............................................................................................................... 147 
EJEMPLO 58 ............................................................................................................... 149 
EJEMPLO 59 ............................................................................................................... 152 
EJEMPLO 60 ............................................................................................................... 156 
 
 
 
 
7
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
CAPITULO I 
FUNDAMENTOS 
1.1 DEFINICIÓN 
 
La programación estructurada es un paradigma 
considerado como un estándar en la programación, 
orientado a mejorar la claridad en la resolución de 
problemas, mejorar la calidad y tiempo de desarrollo de un 
programa utilizando funciones y estructuras, la 
programación estructurada rige estructuras de control: 
secuenciales, condicionales (if, if-else, switch), 
repetitivas (while, do-while,for), el teorema propuesto por Böhm-Jacopini, 
demuestra que con estas tres instrucciones de control se pueden escribir 
programas y aplicaciones posibles. 
 
Entre ventajas de la programación estructurada puede citarse a las siguientes: 
• Los programas pueden ser leídos de forma secuencial, sin necesidad de 
rastrear saltos de línea entre bloques de código. 
• Se optimiza la fase de prueba y depuración. 
 
1.2 ESTRUCTURA REPETITIVAS 
 
En programación es común encontrar operaciones que 
deben ejecutarse una cantidad de veces, estas operaciones 
devuelven un valor distinto pero el procedimiento es la 
misma. Podríamos tomar como ejemplo un programa que 
solicite las notas de estudiantes para indicar cuantos de 
ellos están aprobados o reprobados, el procedimiento se 
repetirá n veces que el usuario lo indique. 
 
Varios de estos procedimientos pueden realizarse con líneas de códigos 
secuenciales, pero en operaciones grandes o repetitivas, es necesario utilizar una 
estructura que permita el uso de bucles o ciclos. 
En programación encontraremos los siguientes tres ciclos: 
• Ciclo While. 
• Ciclo Do-While 
• Ciclo For 
 
 
 
 
 
8
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Características 
 
 
 
 
1.2.1 Funcionamiento de un ciclo 
Un ciclo funciona de la siguiente manera: 
• Se evalúa la condición 
o Si la condición es verdadera: se realiza la 
acción o bloque de acciones. 
• Se vuelve a evaluar la condición 
• Cuando la condición es falsa, se sale del ciclo y 
continua con las demás líneas de código del 
programa. 
9
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
1.2.2 Contador 
Es una variable que debe ser declarado como tipo de dato 
entero (int) que ayudará a contabilizar el número de 
ejecuciones o repeticiones que realizará el ciclo, esta variable 
deberá tener un incremento durante al proceso de ejecución 
dentro del bucle o ciclo. 
Un contador tiene las siguientes características: 
• Valor inicial: es el valor con el cual se la declara al inicio del programa, 
generalmente se lo inicializa en 0 o 1, la asignación de estos valores puede 
realizarse de igual manera cuando se declara la variable. 
• Valor Final: una vez ejecutado el programa, el valor del contador ira 
cambiando a lo largo del programa, el valor que tendrá al finalizar el 
programa dependerá si esta tiene un incremento positivo o negativo. 
• Incremento: es el valor constante el cual la variable será incrementado ya 
sea de manera positiva o negativa: ejemplo: i=i+1 ó i++ (positivo), 
i=i-1 ó i-- (negativo). 
• Variables tipo bandera: este tipo de variables son aquellas que dan como 
resultado dos valores: verdadero – falso, true o false. 
Dentro del ciclo debe haber una instrucci´on que modifique el valor del contador, 
su forma general es la siguiente: 
contador = contador + valorIncremento 
contador = contador - valorDecremento 
El valor a incrementar o decrementar, hace referencia a cualquier cantidad de tipo 
numerico, en la cual aumenta o disminuye su valor en cada iteraci´on del ciclo. Los 
valores a incrementar o decrementar son cantidades constantes. 
 
1.2.3 Acumulador 
Son variables a las cuales se las asigna valores que se necesita acumular, por 
ejemplo, cuando se necesita sumar números dentro de un bucle, estas variables 
pueden ser de tipo de dato entero (int) o tipo de dato real(float-double), ejemplo: 
suma= suma + i. 
 
Dentro del ciclo debe haber una instruccion que modifique el valor del acumulador, 
su forma general es la siguiente: 
acumulador = acumulador + valorIncremento 
acumulador = acumulador – valorDecremento 
El valor a incrementar o valor a decrementar se refiere a cualquier cantidad de tipo 
numerico, en la cual el acumulador aumenta o disminuysu valor en cada iteracion 
del ciclo. Los valores a incrementar o decrementar son cantidades variables. 
 
 
10
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
1.3 ENTORNO DE DESARROLLO INTEGRADO (IDE) 
 
1.3.1 PSEINT 
PSeInt es principalmente un intérprete de pseudocódigo. El proyecto nació como 
trabajo final para la cátedra de Programación I de la carrera Ingeniería en 
Informática de la Universidad nacional del Litoral, razón por la cual el tipo de 
pseudocódigo que interpreta está basado en el pseudocódigo presentado en la 
cátedra de Fundamentos de Programación de dicha carrera. Actualmente incluye 
otras funcionalidades como editor y ayuda integrada, 
generación de diagramas de flujo o exportación a código C++ 
(en etapa experimental). El proyecto se distribuye como 
software libre bajo licencia GPL. 
Para descargarlo o conseguir actualizaciones visite: 
http://pseint.sourceforge.net 
 
1.3.2 DEV C++ 
Dev-C++ es un entorno de desarrollo integrado (IDE) con todas las funciones para 
C/C++ lenguaje de programación. Como IDE similares, ofrece al programador una 
herramienta simple y unificada para editar, compilar, vincular y depurar programas. 
También proporciona apoyo para la gestión de los archivos de un programa en 
"proyectos" que contienen todos los elementos necesarios para producir un 
programa ejecutable. 
 
Dev-C++ usa el puerto Mingw de GCC (GNU Compiler Collection) 
como compilador. Puede crear nativo Ejecutables Win32, ya sea 
consola o GUI, así como DLL y bibliotecas estáticas. 
Dev-C++ es un Software Libre distribuido bajo los términos de la 
Licencia Pública General GNU (GPL). El IDEse puede descargar 
aquí: 
https://sourceforge.net/projects/orwelldevcpp/files/latest/download 
 
1.3.3. NETBEANS 
NetBeans es un IDE muy completo para programar en varios lenguajes, aunque 
se especializa principalmente en Java. se puede usar también en C++, PHP, 
HTML y una larga lista de etcétera. Maneja una estructura para trabajar con los 
programas de java que te permitirán organizar tu trabajo. NetBeans IDE es 
GRATUITO, de código abierto, y tiene una comunidad mundial de usuarios y 
desarrolladores. 
 
Instalacion de Netbeans IDE 10. Ir al sitio de 
descarga de Netbeans disponible en: 
11
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
Aclaración: 
Se debe tener especial cuidado en la inicialización del 
acumulador cuando se trabaje con multiplicaciones, su 
valor inicial no puede ser 0, debido a que todas las 
operaciones realizadas con ´el darían como resultado 0. 
De igual manera si se trabaja con divisiones, la variable 
valorDecremento por ningún motivo podría tomar el valor 
de 0, la división entre 0 no está definida. 
 
https://netbeans.apache.org/download 
Instalación de Java Development Kit (JDK) 1. Ir al sitio de descarga del JDK 
disponible en: https://www.oracle.com/java/technologies/downloads/ 
 
1.3.4. PROGRAMA EN LÍNEA 
Replit (rep-lit) anteriormente repl.it es un IDE online (Entorno de desarrollo 
integrado) Su nombre proviene del acrónimo REPL, que significa "bucle de lectura-
evaluación-impresión". Amjad Masad, Faris Masad y Haya Odeh cofundaron la 
empresa en 2016. 
Características, Replit permite a los usuarios escribir 
código y crear aplicaciones y sitios web mediante un 
navegador. El sitio también tiene varias funciones de 
colaboración, incluida la capacidad de edición 
multiusuario en tiempo real con una fuente de chat en 
vivo. Admite lenguajes de programación y marcado 
como Java , Python y HTML , lo que permite a los 
usuarios crear aplicaciones y sitios web, pero puede 
ejecutar cualquier lenguaje existente usando Nix . El 
sitio está integrado con GitHub , una plataforma de alojamiento de código, que 
proporciona una forma de importar y ejecutar proyectos desde GitHub. Los 
usuarios también pueden importar proyectos desde Glitch, que brinda un servicio 
similar a Replit. Disponible en: https://replit.com/languages/c 
 
 
13
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
CAPITULO II 
LENGUAJES DE PROGRAMACIÓN 
2.1. DEFINICIÓN 
 
2.1.1. Lenguaje 
El lenguaje es el principal medio de comunicación que los 
seres humanos poseemos, es la que nos permite interactuar 
con otros humanos mediante diferentes elementos como: 
palabras, señas o sonidos, que por sí misma no tendrían 
significado, pero existen normativas que regular la manera en 
que las mismas pueden utilizarse para que estas puedan ser 
entendibles en un idioma propio. 
 
2.1.2. Lenguaje de Programación 
Es la forma de comunicación entre el usuario y la 
computadora o algún dispositivo digital, al igual que el 
lenguaje de comunicación entre los seres humanos, los 
lenguajes de programación tienen reglas semánticas como 
sintácticas que los programadores utilizan para codificar 
instrucciones de un programa o algoritmo. 
Existen una variedad de lenguajes de programación y cada una tiene un propósito 
en específico, se utilizan para crear programas, aplicaciones, sistemas operativos, 
interpretar datos y resolver problemas. Cada lenguaje de programación tiene su 
propia semántica y sintaxis. 
 
2.1.3. Ejemplos de lenguajes de programación 
A continuación, nombramos algunos de lenguajes de programación más 
conocidos: 
• Basic: es una familia de lenguajes de 
alto nivel, su versión más actual es 
Visual Basic. NET. 
• Lenguaje C: Fue creado como 
evolución al lenguaje B, es uno de los 
lenguajes más populares para crear 
softwares de sistemas operativos y 
aplicaciones. 
• Lenguaje C++: es un lenguaje 
estructurado estándar que permite un 
trabajo más cercado al hardware, C++ 
14
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
es una extensión de C, está orientada a Objetos y recurre a librerías. 
• Lenguaje C#: Es la evolución del Lenguaje C++, la misma fue creada como 
competencia al lenguaje más popular en su momento como java, el 
lenguaje C# está orientada al uso de framerk.NET. 
• JAVA: Es un lenguaje de programación orientado a objetos derivado de los 
lenguajes C y C++. 
2.1.4. Componentes 
La composición general de un programa es: 
• Directivas de Procesamiento. 
• Función Principal Main 
• Declaración de Variables. 
• Funciones definidas por el usuario. 
• Comentarios para entender el funcionamiento del programa. 
 
2.2. LENGUAJE C 
 
Es un lenguaje de programación considerado como uno de los 
más importantes, con el cual es posible es desarrollo de 
aplicaciones y sistemas operativos, el aprendizaje de este 
lenguaje es base para otros lenguajes como Java, C++ o C#. 
Las características del lenguaje C son las siguientes: 
• Es un lenguaje estructurado. 
• Es considerado como un lenguaje de programación de nivel medio lo cual 
significa que tiene ventajas de la programación de alto y bajo nivel. 
• Es uno de los lenguajes más utilizados, gracias a ello se lo considera como 
un lenguaje flexible. 
• No depende del hardware por lo cual puede migrarse a otros sistemas. 
Otra de las características importantes es el uso de librerías que facilitan el uso de 
diversas funciones ya definidas que facilitan al desarrollo de la programación. 
 
2.3. LENGUAJE JAVA 
 
Es un lenguaje que se diseño para ser parecido a C++, pero 
reduciendo las características menos usadas y añadiendo 
características más útiles. 
Las características del lenguaje JAVA son las siguientes: 
 
• Es un lenguaje simple, ofrece la funcionalidad del lenguaje C y C++. 
• Orientado a objetos, incorpora la resolución dinámica de métodos y trabaja 
con librerías dinámicas DLLs. 
15
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
• Distribuido, ofrece la capacidad de acceder a librerías para interactuar con 
protocolos TCP/IP, lo cual permite acceder a la información en red. 
• Robusto, porque realiza verificaciones en busca de problemas tanto en la 
compilación como en la ejecución del programa, esto ayuda a detectar 
errores durante el desarrollo de programas. 
 
La programación en lenguaje Java tiene objetivos principales: 
• Esta enfocado en el desarrollo orientado a objetos. 
• Los programas desarrollados en este lenguaje deben permitir su ejecución 
en diversos sistemas operativos. 
• Las aplicaciones desarrolladas en Java deben tener soporte de red 
integrado. 
• Debe configurarse para ejecutar el código en fuentes de forma segura. 
• Las aplicaciones desarrolladas en este lenguaje deben ser de fácil uso para 
el usuario. 
Una vez terminado el programa en Java, estas se convierten en ByteCode de 
Java, el cual es leído por la maquina virtual de java el que se encarga de traducir 
el código en lenguaje máquina, lo cual esto significa que los dispositivos que 
quieran ejecutar el programa necesitan de una máquina virtual de Java para que 
pueda ejecutarse, con lo cual esto indica que un código de java puede ser 
ejecutando en distintos dispositivos y ser traducidos para su ejecución. 
 
17
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
CAPITULO III 
CICLO WHILE (mientras) 
 
3.1. DEFINICIÓN 
 
El ciclo while es una estructura que permite ejecutar operaciones 
de manera repetitiva sin la necesidad de tener un valor inicial, una 
característica del ciclo while es que su condicional no dependen de 
un valor entero sin de una variable bandera o booleana, es decir 
que el ciclo se ejecutará mientras la condición sea verdadera. 
 
3.2. SINTAXIS 
 
La sintaxis del ciclo while es 
simple y legible, ya que solo 
debe declararse una condición 
el cual controle el ciclo para su 
ejecución.A continuación, vemos la 
sintaxis del ciclo while: 
 
Línea 1: en esta línea vemos la declaración del ciclo while en letras azules en la cual 
sigue entre paréntesis la condición para finalizar el ciclo, mientras la condición sea 
verdadera, ingresara al bucle para ejecutar las operaciones o el proceso indicado. 
Línea 2: en la línea 2 se observa una llave de apertura “{“, lo cual indica que allí es el 
inicio de las instrucciones del ciclo que será ejecutado mientras la condicional será 
verdadera. 
Línea 3-7: estas líneas representan el proceso que se ejecutaran mientras la condicional 
sea verdadera. 
Línea 8: esta última línea se observa una llave cerrada "}", el cual indica que allí termina 
el proceso del ciclo while. Una vez que la condición será falsa el bucle termina en esa 
línea de código y continua con la ejecución del resto del programa. 
EJEMPLO: 
PSEUDOCODIGO DIGRAMA DE FLUJO LENGUAJE C LENGUAJE JAVA 
 
 
Mientras n > c Hacer 
 Leer num 
 m <- m * num 
 c <- c + 1 
Fin Mientras 
 
 while (n>c) 
{ 
 printf("Ingrese un numero 
= "); 
 scanf("%d", & num); 
 m=m*num; 
 c=c+1; 
} 
 
while(n > c) 
{ 
 System.out.println("Ingrese 
un numero = "); 
num = dato.nextByte(); 
m = m*num; 
c++; 
} 
18
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
Aclaración: 
Del anterior análisis se puede establecer que, de acuerdo a 
la inicialización de la variable que controlará la ejecución 
del ciclo, se debe prestar especial cuidado en elegir 
correctamente el operador relacional que hará parte de la 
condición del Mientras. En los segmentos de algoritmos 
analizados se pudo observar lo siguiente: 
numero = 0 se utiliza el operador < 
numero = 1 se utiliza el operador <= 
 
3.3. REPRESENTACIÓN CICLO WHILE EN DIAGRAMA DE FLUJO 
La instrucción Mientras ejecuta una secuencia de 
instrucciones mientras una condición sea verdadera. 
 Mientras <condición> Hacer 
<instrucciones> 
FinMientras 
En el diagrama se puede observar la manera en que es 
representado el ciclo while en un diagrama de flujo. 
EL funcionamiento del ciclo while, mientras la condición 
sea verdadera, ingresa al ciclo y se ejecutan los 
procesos, el ciclo termina cuando la condiciona sea 
falso. Em este ciclo, puede darse el caso de que no 
ingrese al proceso ni una sola vez si la condición es 
falsa. 
 
 
 
 
 
 
 
 
19
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 EJEMPLO 01 
1. REALIZAR UN DIAGRAMA DE FLUJO QUE MUESTRE N VECES LA PALABRA 
“SISTEMAS” 
2. ANÁLISIS: Para el problema se necesita un dato de entrada N para mostrar por pantalla la cantidad de N 
veces la palabra “SISTEMAS” 
Algoritmo ejercicio1 
 Leer n 
 c <-1 
 Mientras c <= n Hacer 
 Escribir "SISTEMAS LA MEJOR" 
 c <- c + 1 
 Fin Mientras 
FinAlgoritmo 
3. DIAGRAMA DE FLUJO 
 
4. PRUEBA DE ESCRITORIO 
VARIABLES 
MOSTRAR N C 
5 1 SISTEMAS 
 2 SISTEMAS 
 3 SISTEMAS 
 4 SISTEMAS 
 5 SISTEMAS 
 6 
4. CODIFICACIÓN DEV-C++ 5.2.0.1 
/* 1. REALIZAR UN DIAGRAMA DE FLUJO QUE MUESTRE N VECES LA 
PALABRA "SISTEMAS LA MEJOR" */ 
#include <cstdio> 
int main(){ 
 int n, c; 
 c=1; 
 printf("Introduzca en valor para n: 
"); 
 scanf("%d", & n); 
 while (c <= n) 
 { printf("\n SISTEMAS LA 
MEJOR\n"); 
 c=c+1; 
 } 
 return 0; 
} 
5. SALIDA EN C: 
 
 
 
 
 
20
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
6. CODIFICACIÓN JAVA 
 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 int n; 
 Scanner dato = new Scanner(System.in); 
 System.out.print("Ingresa un numero para n = "); 
 n = dato.nextInt(); 
 int c = 1; 
 while(c <= n){ 
 System.out.print("SISTEMAS\n"); 
 c++; 
 } 
 } 
} 
 
7. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
 
 
 
 
EJEMPLO 02 
1. DADO UN NÚMERO ENTERO Y POSITIVO IMPRIMIR LOS PRIMEROS N NÚMEROS 
IMPARES. 
2. ANÁLISIS 
•• Para el problema se necesita un dato de entrada N entero (int) y positivo. 
•• Ingresado el numero N, procedemos a mostrar por pantalla los números impares,1,3,5,.., 
para ello, utilizaremos un contador c=1 y procedemos a sumar +2 para generar la serie de 
números impares. 
Algoritmo ejercicio2 
 Leer n 
 c <-1 
 Mientras c <= n Hacer 
 Escribir c 
 c <- c + 2 
 Fin Mientras 
FinAlgoritmo 
21
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
VARIABLES 
MOSTRAR n c 
5 1 1 
 3 3 
 5 5 
 7 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/* 2. DADO UN NÚMERO ENTERO Y POSITIVO IMPRIMIR LOS 
PRIMEROS N NÚMEROS IMPARES */ 
#include <cstdio> 
int main(){ 
 int n, c; 
 c=1; 
 printf("Introduzca en valor para n: "); 
 scanf("%d", & n); 
 while (c <= n) 
 { 
 printf("\n %d \n", c); 
 c = c + 2 ; 
 } 
 return 0; 
} 
 6. SALIDA EN C: 
 
 
7. CODIFICACIÓN JAVA 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 int n; 
 Scanner dato = new Scanner(System.in); 
 System.out.print("Ingres un numero ="); 
 n = dato.nextInt(); 
 int c = 1; 
 System.out.print("Numeros Impares\n"); 
 while(c <= n){ 
 System.out.print(c+"\n"); 
 c+=2; 
 } 
 } 
} 
22
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
 
 
 
 
EJEMPLO 03 
1. REALIZAR UN ALGORITMO QUE PERMITA MULTIPLICAR (N) NÚMEROS 
INTRODUCIDOS POR TECLADO. 
2. ANÁLISIS: 
▪ Para el problema se necesita un dato de entrada N el cual se utilizará para solicitar datos 
por pantalla. 
▪ Se utilizará un contador C para realizar la multiplicación con los datos ingresados por 
pantalla. 
Algoritmo Ejercicio3 
 Leer n 
 c <-0 
 m <-1 
 Mientras n > c Hacer 
 Leer num 
 m <- m * num 
 c <- c + 1 
 Fin Mientras 
 Escribir m 
FinAlgoritmo 
23
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
3. DIAGRAMA DE FLUJO 4. PRUEBA DE ESCRITORIO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
VARIABLES 
MOSTRAR n c n num 
3 0 1 2 30 
 1 2 3 
 2 6 5 
 3 30 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*3. REALIZAR UN ALGORITMO QUE PERMITA MULTIPLICAR (N) 
NÚMEROS INTRODUCIDOS POR TECLADO. */ 
 
 
#include <cstdio> 
int main(){ 
 int n, c, m, num; 
 c=0; 
 m=1; 
 printf("Introduzca en valor para n: "); 
 scanf("%d", & n); 
 while (n>c) 
 { 
 printf("Introduzca en valor para 
num: "); 
 scanf("%d", & num); 
 m=m*num; 
 c=c+1; 
 } 
 printf("\n %d \n", m); 
 return 0; 
} 
6. SALIDA EN C: 
 
7. CODIFICACIÓN JAVA 
 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
24
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 public static void main(String[] args) { 
 int n,c,m,num; 
 Scanner dato = new Scanner(System.in); 
 System.out.print("Ingres un numero para n = "); 
 n = dato.nextInt(); 
 c = 0; 
 m = 1; 
 while(n > c){ 
 System.out.println("Ingrese un numero para num = "); 
 num = dato.nextInt(); 
 m = m*num; 
 c++; 
 } 
 System.out.println("Resultado" + m + "\n"); 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
 
 
 
EJEMPLO 04 
1. OBTENER LA SUMA DE LOS PRIMEROS N NÚMEROS NATURALES POSITIVOS. 
2. ANÁLISIS 
• Para el problema se necesita un dato de entrada N. 
• Utilizaremos un contador C para realizar la suma de la misma mientras el contador sea 
menor o igual al dato de entrada N. 
Algoritmo Positivos 
 Leer n 
 c <-1 
 s <-0 
 Mientras c <= n Hacer 
 s <- s + c 
 c <- c + 1 
 Fin Mientras 
 Escribir s 
FinAlgoritmo 
 
 
 
 
 
 
25
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓNC / JAVA
VOLUMEN 2
 
 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
 
 
 
VARIABLES 
MOSTRAR n c s 
5 1 0 15 
 2 1 
 3 3 
 4 6 
 5 10 
 6 15 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*4. OBTENER LA SUMA DE LOS PRIMEROS N NÚMEROS NATURALES 
POSITIVOS. */ 
#include <cstdio> 
int main(){ 
 int n, c, s; 
 c=1; 
 s=0; 
 printf("Introduzca en valor para n: 
"); 
 scanf("%d", & n); 
 while (c<=n) 
 { 
 s= s+c; 
 c=c+1; 
 } 
 printf("%d", s); 
 return 0; 
} 
6. SALIDA EN C: 
 
7. CODIFICACIÓN JAVA 
 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n,c,s; 
 System.out.print("Ingrese un numero = "); 
 n = dato.nextInt(); 
 c =1; 
 s = 0; 
 while(c <= n){ 
 s = s+c; 
26
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 c = c+1; 
 } 
 System.out.println("la suma es "+s); 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
EJEMPLO 05 
1. HACER UN DIAGRAMA DE FLUJO QUE PIDA NÚMEROS AL USUARIO Y SUME 
LOS MÚLTIPLOS DE 5. EL PROGRAMA TERMINARÁ CUANDO EL USUARIO 
INTRODUZCA 0 
2. ANÁLISIS 
▪ Para el problema necesitamos ingresar valores N. 
▪ El programa finalizará una vez que el usuario ingrese 0, mientras esta condición sea cierta, 
se procederá a la operación condicional, si el valor ingresado N es múltiplo de 5, en caso 
de ser cierto, se realizara la suma de los elementos múltiplos de 5. 
Algoritmo Ejemplo5 
 n <-1 
 s <-0 
 Mientras n!= 0 Hacer 
 Leer n 
 Si n % 5==0 Entonces 
 s =s + n 
 Fin Si 
 Fin Mientras 
 Escribir "Suma = ", s 
FinAlgoritmo 
27
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
3. DIAGRAMA DE FLUJO 4. PRUEBA DE ESCRITORIO 
VARIABLES MOSTRAR 
N S 
1 0 SUMA=20 
1 5 
3 15 
5 20 
7 20 
9 
10 
5 
0 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/* 5. HACER UN DIAGRAMA DE FLUJO QUE PIDA NÚMEROS AL USUARIO 
Y SUME LOS MÚLTIPLOS DE 5. EL PROGRAMA TERMINARÁ CUANDO EL 
USUARIO INTRODUZCA 0*/ 
#include <cstdio> 
int main(){ 
int N, s; 
N=1; 
s=0; 
while (N!=0) 
 { 
 printf("Introduzca en valor para 
n:"); 
 scanf("%d", & N); 
 if(N % 5 == 0) 
 { 
 s= s+N; 
 } 
 } 
 printf("La suma es :%d", s); 
 return 0; 
} 
6. SALIDA EN C: 
 
 
7. CODIFICACIÓN JAVA 
 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 int N=1, s= 0; 
28
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 Scanner dato = new Scanner(System.in); 
 while( N!=0){ 
 System.out.print("Ingrese un valor para n = "); 
 N = dato.nextInt(); 
 if(N % 5 == 0){ 
 s = s+N; 
 } 
 } 
 System.out.println("La suma es = " + s); 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EJEMPLO 06 
1. HACER EL DIAGRAMA DE FLUJO PARA SUMAR LOS N PRIMEROS IMPARES 
QUE NO SEAN MÚLTIPLOS DE 5 
2. ANÁLISIS 
▪ Para el problema necesitamos un dato de entrada N. 
▪ Necesitamos identificar los números que no sean múltiplos de 5 para realizar la suma de 
los elementos. 
 Algoritmo Ejemplo6 
 Leer n 
 cont <-0 
 s <-0 
 i <- 1 
 Mientras cont < n Hacer 
 
 Si (i % 2 <>0 && i%5 <> 0) Entonces 
 s =s + i 
 cont = cont +1 
 Fin Si 
 i<- i+1 
 Fin Mientras 
 Escribir "Suma = ", s 
 FinAlgoritmo 
 
 
 
29
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
 
 
 
VARIABLES MOSTRAR 
N i Cont S 
7 1 0 0 SUMA=61 
 2 1 1 
 3 2 4 
 4 3 11 
 5 4 20 
 6 5 31 
 7 6 44 
 8 7 61 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*6. HACER EL DIAGRAMA DE FLUJO PARA SUMAR LOS 
N PRIMEROS IMPARES QUE NO SEAN MÚLTIPLOS DE 
5*/ 
#include <stdio.h> 
#include <conio.h> 
int main(){ 
 int N, s, cont, i; 
 i=1; 
 cont=0; 
 s=0; 
 printf("Introduzca en valor para n: "); 
 scanf("%d", & N); 
while (cont < N) 
 { 
 if(i%2 != 0 && i % 5 !=0) 
 { 
 s= s+i; 
 cont = cont +1; 
 } 
 i=i+1; 
 } 
 printf("La suma es :%d", s); 
 return 0; 
} 
6. SALIDA EN C: 
 
 
 
30
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2 
 
 
7. CODIFICACIÓN JAVA 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int N; 
 int s=0, cont = 0, i=1; 
 System.out.print("Ingrese un valor para n = "); 
 N = dato.nextInt(); 
 while(cont < N){ 
 if(i % 2 != 0 && i % 5 != 0){ 
 s = s+i; 
 cont=cont+1; 
 } 
 i++; 
 } 
 System.out.println("La suma es =" + s); 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
EJEMPLO 07 
1. DADO UN NÚMERO, DETERMINAR CUÁNTOS DÍGITOS PARES, DÍGITOS 
IMPARES Y DÍGITOS CEROS TIENE. 
2. ANÁLISIS 
N =120345 ⇒ 2 dígitos pares, 3 dígitos impares, 1 digito cero 
Algoritmo ejercicio7 
 Definir n, dig, conPar, conImpar, conCero Como Entero 
 Leer n 
 conPar <- 0 
 conImpar <-0 
 conCero <- 0 
 dig<-0 
 Mientras n > 0 Hacer 
 dig <- n % 10 
 Si (dig % 2 = 0) Entonces 
 Si dig <> 0 Entonces 
 conPar<-conPar +1 
 SiNo 
 conCero <-conCero + 1 
 Fin Si 
 SiNo 
31
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 conImpar<- conImpar + 1 
 Fin Si 
 n <- n / 10 
 Fin Mientras 
 Escribir conCero 
 Escribir conImpar 
 Escribir conPar 
FinAlgoritmo 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
VARIABLES MOSTRAR 
n conPar conImpar connCero 
120345 0 0 0 2, 3, 1 
12034 1 1 1 
1203 2 2 
120 3 
12 
 
1 
0 
32
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2 
 
 
 
 
 
 
 
 
 
 
 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*7. DADO UN NÚMERO, DETERMINAR CUÁNTOS DÍGITOS PARES, DÍGITOS IMPARES Y DÍGITOS CEROS TIENE*/ 
#include <stdio.h> 
#include <conio.h> 
int main(){ 
 int N, conPar,conImpar,conCero,dig; 
 conPar=0; 
 conImpar=0; 
 conCero=0; 
 
 printf("Introduzca en valor para N: "); 
 scanf("%d", & N); 
 while (N > 0) 
 { 
 dig= N % 10; 
 if(dig % 2==0) 
 { 
 if(dig != 0) 
 { 
 conPar=conPar + 1; 
 } 
 else 
 { 
 conCero=conCero + 1; 
 } 
 } 
 else 
 { 
 conImpar=conImpar +1; 
 } 
 N=N/10; 
 } 
 printf("\n Digitos Pares :%d \n", conPar); 
 printf("\n Digitos Impares :%d \n", conImpar); 
 printf("\n Digitos Cero :%d \n", conCero); 
 return 0; 
} 
6. SALIDA EN C: 
 
 
7. CODIFICACIÓN JAVA 
package pkgwhile; 
import java.util.Scanner; 
33
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n; 
 System.out.print("Ingrese un numero para N= "); 
 n = dato.nextInt(); 
 int conPar =0, conImpar=0,conCero=0; 
 int dig=0; 
 while(n > 0){ 
 dig = n % 10; 
 if(dig % 2 == 0){ 
 if(dig != 0){ 
 conPar++; 
 }else{ 
 conCero++; 
 } 
 }else{ 
 conImpar++; 
 } 
 n = n/10; 
 } 
 System.out.println("DígitosPares: " + conPar 
 +" \nDígitos Impares: "+conImpar 
 +" \nDígitos cero: "+conCero); 
} 
8. SALIDA EN JAVA: 
 
 
 
EJEMPLO 08 
1. LA EMPRESA DE EMAPA TIENE CONTRATADOS A N VENDEDORES. CADA UNO 
HACE TRES VENTAS A LA SEMANA. SU POLÍTICA DE DE PAGOS ES QUE UN 
VENDEDOR RECIBE UN SUELDO BASE, Y UN 10% EXTRA POR COMISIONES DE 
SUS VENTAS. EL GERENTE DE SU EMPRESA DESEA SABER CUÁNTO DINERO 
OBTENDRÁ EN LA SEMANA CADA VENDEDOR POR CONCEPTO DE 
COMISIONES POR LAS TRES VENTAS REALIZADAS, Y CUANTO TOMANDO EN 
CUENTA SU SUELDO BASE Y SUS COMISIONES. 
2. ANÁLISIS 
Algoritmo ejercicio8 
 Escribir "Introduzca el valor para N" 
 Leer n 
 c <- 1 
 Mientras c <= n Hacer 
 Leer sb, v1, v2, v3 
 tventa <- v1+ v2+ v3 
34
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 com <- tventa * 0.10 
 tpag<-sb + com 
 Escribir tpag 
 Escribir com 
 Fin Mientras 
FinAlgoritmo 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
 
VARIABLES MOSTRAR 
n c SB V1 V2 V3 TVENTA COM TPAG 
4 1 1000 20 30 40 90 9.0 1009.0 9, 109 
 2 1200 10 15 25 50 5.0 1205.0 5,125 
 3 800 20 25 30 75 7.5 807.5 8,88 
 4 1300 50 80 90 220 22.0 1322.0 22,152 
 5 
 
 
 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*8. LA EMPRESA DE EMAPA TIENE CONTRATADOS A N VENDEDORES. CADA UNO HACE TRES VENTAS A LA SEMANA. SU 
POLÍTICA DE DE PAGOS ES QUE UN VENDEDOR RECIBE UN SUELDO BASE, Y UN 10% EXTRA POR COMISIONES DE SUS 
VENTAS. EL GERENTE DE SU EMPRESA DESEA SABER CUÁNTO DINERO OBTENDRÁ EN LA SEMANA CADA VENDEDOR POR 
CONCEPTO DE COMISIONES POR LAS TRES VENTAS REALIZADAS, Y CUANTO TOMANDO EN CUENTA SU SUELDO BASE Y 
SUS COMISIONES*/ 
#include <stdio.h> 
#include <conio.h> 
int main(){ 
 int N, c, SB, V1,V2,V3,COM, TVENTA, TPAG; 
 c=1; 
 printf("Introduzca en valor para N: "); 
 scanf("%d", & N); 
 while (c<=N) 
 { 
 printf("Introduzca en valor para Sueldo Base: "); 
35
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 scanf("%d", & SB); 
 printf("Introduzca en valor de la Venta 1: "); 
 scanf("%d", & V1); 
 printf("Introduzca en valor de la Venta 2: "); 
 scanf("%d", & V2); 
 printf("Introduzca en valor de la Venta 3: "); 
 scanf("%d", & V3); 
 
 TVENTA = V1 + V2 + V3; 
 COM = TVENTA * 0.10; 
 TPAG=SB + COM; 
 c= c+1; 
 
 printf("\n Total Pagado :%d \n", TPAG); 
 printf("\n Comision :%d \n", COM); 
 } 
 return 0; 
} 
6. SALIDA EN C: 
 
 
 
 
 
 
 
 
 
 
7. CODIFICACIÓN JAVA 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n, c = 1 ; 
 int sb, v1,v2,v3; 
 double Tventa,com,Tpag; 
 System.out.print("Ingrese un numero para N = "); 
 n = dato.nextInt(); 
 while(c<=n){ 
 System.out.print("Ingrese valor suelo base="); 
 sb = dato.nextInt(); 
 System.out.print("Ingrese valor venta 1="); 
 v1 = dato.nextInt(); 
 System.out.print("Ingrese valor venta 2 = "); 
 v2 = dato.nextInt(); 
 System.out.print("Ingrese valor venta 3 = "); 
 v3 = dato.nextInt(); 
 Tventa = v1 + v2 + v3; 
 com = Tventa * 0.10; 
 Tpag = sb + com; 
36
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 c++; 
 System.out.println("Total Pagado: " + Tpag); 
 System.out.println("Comisión:" + com); 
 } 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
EJEMPLO 09 
1. LEER UN NÚMERO MAYOR A 100 E INDICAR CUANTOS NÚMEROS PARES, 
IMPARES E IGUALES A CERO TIENE. 
2. ANÁLISIS 
Algoritmo ejercicio9 
 Escribir "Introduzca el valor para N" 
 Leer n 
 nn <- n, ceros <- 0, par <- 0, impar <- 0 
 Mientras nn > 0 Hacer 
 d<-nn%10 
 nn<-nn/10 
 Si d==0 Entonces 
 ceros<-ceros + 1 
 SiNo 
 Si d % 2== 0 Entonces 
 par<-par + 1 
 SiNo 
 impar<-impar +1 
 Fin Si 
 Fin Si 
 Escribir ceros 
 Escribir par 
 Escribir impar 
 Fin Mientras 
FinAlgoritmo 
37
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
3. DIAGRAMA DE F 4. PRUEBA DE ESCRITORIO 
 
 
 
 
 
 
VARIABLES MOSTRAR 
n nn ceros p
a
r 
impar d 
4507 4507 0 0 0 7 1 
450 1 1 1 0 1 
45 
 
2 5 2 
4 
 
4 
0 
 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*9. LEER UN NÚMERO MAYOR A 100 E INDICAR CUANTOS NÚMEROS 
PARES, IMPARES E IGUALES A CERO TIENE*/ 
 
#include <stdio.h> 
#include <conio.h> 
int main(){ 
 int n, nn, ceros, par, impar,d; 
 nn=n; 
 ceros=0; 
 par=0; 
 impar=0; 
 printf("Introduzca en valor para N: "); 
 scanf("%d", & n); 
 while (nn > 0) 
 { 
 d= nn % 10; 
 nn=nn / 10; 
 if(d == 0) 
 { 
 ceros = ceros +1; 
 } 
 else 
 { 
 if(d % 2 == 0) 
 { 
 par = par +1; 
 } 
 else 
 { 
6. SALIDA EN C: 
 
38
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 impar= impar +1; 
 } 
 } 
 } 
 printf("\n Total ceros :%d \n", ceros); 
 printf("\n Total par :%d \n", par); 
 printf("\n Total impar :%d \n", impar); 
 return 0; 
} 
7. CODIFICACIÓN JAVA 
 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n; 
 System.out.print("Ingrese un número mayor a 100 = "); 
 n = dato.nextInt(); 
 int nn=n, ceros = 0, par = 0, impar=0,d=0; 
 while(nn > 0){ 
 d = nn % 10; 
 nn = nn/10; 
 if(d == 0){ 
 ceros++; 
 }else{ 
 if(d % 2 == 0){ 
 par++; 
 }else{ 
 impar++; 
 } 
 } 
 } 
 System.out.println("Total pares = "+par 
 +"\nTotal impares = "+impar 
 +"\nTotal ceros = "+ceros); 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
 
 
 
 
39
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
EJEMPLO 10 
1. LEER UN NÚMERO MAYOR A 100 E INDICAR SI ES CAPICÚA O NO. 
2. ANÁLISIS 
Algoritmo ejercicio9 
 Definir n, nn, ndig Como entero 
 Escribir "Introduzca el valor para N" 
 Leer n 
 nn <- n, dig <- 0 
 Mientras nn > 0 Hacer 
 dig<-nn mod 10 
 nn<- trunc (nn/10) 
 ndig<-ndig * 10 + dig 
 Fin Mientras 
 Si ndig == n Entonces 
 Escribir "ES CAPICUA" 
 SiNo 
 Escribir "NO ES CAPICUA" 
 Fin Si 
FinAlgoritmo 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
 
 
 
 
 
 
VARIABLES MOSTRAR 
n nn ndig dig 
676 676 0 6 ES 
CAPICUA 
67 6 7 
6 67 6 
0 676 
 
 
506 506 0 6 NO ES 
CAPICUA 
50 6 0 
5 60 5 
0 605 
 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*10. LEER UN NÚMERO MAYOR A 100 E INDICAR SI ES CAPICÚA O 
NO.*/ 
#include <stdio.h> 
#include <conio.h> 
int main(){ 
 int n, nn, ndig, dig; 
 ndig=0; 
 printf("Introduzca en valor para 
N:"); 
6. SALIDA EN C: 
 
 
40
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 scanf("%d", & n); 
 nn=n; 
 while (nn > 0) 
 { 
 dig= nn % 10; 
 nn= nn / 10; 
 ndig= ndig*10+dig; 
 } 
 if(ndig == n) 
 { 
 printf("ES CAPICUA"); 
 } 
 else 
 { 
 printf("NO ES CAPICUA"); 
 } 
 return 0; 
} 
 
7. CODIFICACIÓN JAVA 
 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n ; 
 System.out.print("Ingreseun numero para N = "); 
 n = dato.nextInt(); 
 int dig=0,nn = n, ndig=0; 
 while(nn > 0){ 
 dig = nn%10; 
 nn = nn/10; 
 ndig=ndig*10+dig; 
 } 
 if(ndig == n){ 
 System.out.println("ES CAPICÚA\n"); 
 }else{ 
 System.out.println("NO ES CAPICÚA\n"); 
 } 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
 
41
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
EJEMPLO 11 
1. LEER UN NÚMERO MAYOR A 100, CALCULARA LA SUMATORIA DE SUS 
DÍGITOS. 
2. ANÁLISIS 
Algoritmo ejercicio9 
 Definir n, nn, s Como entero 
 Escribir "Introduzca el valor para N" 
 Leer n 
 nn <- n 
 s <- 0 
 Mientras nn > 0 Hacer 
 dig<-nn mod 10 
 nn<- trunc (nn/10) 
 s<-s + dig 
 Fin Mientras 
 Escribir s 
FinAlgoritmo 
 
3. DIAGRAMA DE FLUJO 
 
 
 
4. PRUEBA DE ESCRITORIO 
 
 
VARIABLES MOSTRAR 
n nn s dig 
87094 87094 0 4 28 
8709 4 9 
870 13 0 
87 13 7 
8 20 8 
0 28 
 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*11. LEER UN NÚMERO MAYOR A 100, CALCULARA LA SUMATORIA DE 
SUS DÍGITOS..*/ 
#include <cstdio> 
int main(){ 
int n, nn, s, dig; 
s=0; 
printf(“Introduzca en valor para N: “); 
scanf(“%d”, & n); 
nn=n; 
6. SALIDA EN C: 
 
 
42
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
while (nn > 0) 
 { 
 dig= nn % 10; 
 nn= nn / 10; 
 s= s + dig; 
 } 
printf(“La suma de los dígitos es:%d”, 
s); 
return 0; 
} 
 
7. CODIFICACIÓN JAVA 
package pkgwhile; 
import java.util.Scanner; 
import javax.swing.JoptionPane; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n ; 
 System.out.print(“Ingrese un numero mayor a 100 = “); 
 n = dato.nextInt(); 
 int nn = n, s=0, dig; 
 while(nn > 0){ 
 dig = nn % 10; 
 nn = nn/10; 
 s = s+dig; 
 } 
 System.out.println(“La suma de los dígitos es = “+s); 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
 
EJEMPLO 12 
1. DADO UN NÚMERO N ENTERO POSITIVO MAYOR O IGUAL A 10, CONTAR LOS 
DÍGITOS NULOS, CONTAR LOS DÍGITOS IMPARES DEL NÚMERO Y 
DESPLEGAR LOS RESULTADOS. 
2. ANÁLISIS 
Entradas: n =405037 
Salidas: cantNul es 2 y cantImp es 3 
Algoritmo ejercicio12 
 Definir n, cantNul, cantImp Como entero 
 cantNul<- 0 
 cantImp <- 0 
 Repetir 
43
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 Escribir "Introduzca el valor para N" 
 Leer n 
 Hasta Que n < 10 
 Mientras n <> 0 Hacer 
 dig<-n mod 10 
 Si dig == 0 Entonces 
 cantNul<-cantNul + 1 
 Fin Si 
 Si dig % 2 <> 0 Entonces 
 cantImp<-cantImp + 1 
 Fin Si 
 n<- trunc (n/10) 
 Fin Mientras 
 Escribir "Cantidad Impares", cantImp 
 Escribir "Cantidad Nulos", cantNul 
FinAlgoritmo 
3. DIAGRAMA DE FLUJO 4. PRUEBA DE ESCRITORIO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
VARIABLES MOSTRAR 
N canNul cantImp dig 
405037 0 0 7 2 3 
40503 1 1 3 
4050 2 2 0 
405 3 5 
40 0 
4 4 
0 
44
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*12. DADO UN NÚMERO N ENTERO POSITIVO MAYOR O IGUAL A 10, CONTAR LOS DÍGITOS NULOS, CONTAR LOS DÍGITOS 
IMPARES DEL NÚMERO Y DESPLEGAR LOS RESULTADOS.*/ 
#include <cstdio> 
int main(){ 
 int n, cantNul, cantImp, dig; 
 cantNul=0; 
 cantImp=0; 
 do 
 { 
 printf("Introduzca en valor para N: "); 
 scanf("%d", & n); 
 }while (n<10); 
 
 while(n!=0) 
 { 
 dig= n % 10; 
 if(dig==0) 
 { 
 cantNul=cantNul + 1; 
 } 
 if(dig %2 == 0) 
 { 
 cantImp= cantImp + 1; 
 } 
 n=n/10; 
 } 
 printf("\n La cantidad de digitos nulos:%d", cantNul); 
 printf("\n La cantidad de digitos impares es:%d", cantImp); 
 return 0; 
} 
6. SALIDA EN C: 
 
 
7. CODIFICACIÓN JAVA 
package pkgwhile; 
import java.util.Scanner; 
import javax.swing.JOptionPane; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n; 
 int dig, canImpar=0, canNull=0; 
 do{ 
 System.out.println("Ingrese un numero = "); 
 n = dato.nextInt(); 
 }while(n<10); 
 
 while(n != 0){ 
45
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 dig = n%10; 
 if(dig == 0){ 
 canNull++; 
 } 
 if(dig % 2 == 0){ 
 canImpar++; 
 } 
 n=n/10; 
 } 
 System.out.println("Digitos Nulos = "+canNull 
 + "\nDigitos Impares = "+ canImpar); 
 } 
} 
 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
EJEMPLO 13 
1. LEER N DÍGITOS (CONTROLAR CON DO WHILE QUE SE INTRODUZCA MAYOR 
O IGUAL A 0 Y MENOR O IGUAL A 9) Y ARMAR UN NUEVO NÚMERO CON LOS 
DÍGITOS PRIMOS INTRODUCIDOS. 
 
2. ANÁLISIS 
Si n=4 
 dig =2; dig=3; dig=5 ; dig=8 
 Aplicando la formula nx=nx+d*p →→ nx=532 
3. DIAGRAMA DE FLUJO 4. PRUEBA DE ESCRITORIO 
 
 
46
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 
 
 
 
 
 
 
 
 
VARIABLES 
MOSTRAR n p nx cont dig c i 
4 1 0 0 2 0 1 532 
 10 2 1 3 1 2 
 100 32 2 5 2 3 
 1000 532 3 8 0 1 
 4 1 2 
 2 3 
 0 4 
 1 1 
 2 2 
 0 3 
 1 4 
 2 5 
 3 6 
 4 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*13. LEER N DÍGITOS (CONTROLAR CON DO WHILE QUE SE INTRODUZCA MAYOR O IGUAL A 0 Y MENOR O IGUAL A 9) Y 
ARMAR UN NUEVO NÚMERO CON LOS DÍGITOS PRIMOS INTRODUCIDOS.*/ 
#include <cstdio> 
int main(){ 
 int n, c, dig, nx, p, i, cont; 
 p=1; 
 nx=0; 
 printf("Introduzca en valor para N: "); 
 scanf("%d", & n); 
 cont=0; 
 while(cont<n) 
47
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 { 
 do 
 { 
 printf("Introduzca un Digito: "); 
 scanf("%d", & dig); 
 }while (dig>9 || dig<0); 
 c=0; 
 for (i=1; i <= dig; i++) 
 { 
 if(dig%i==0) 
 { 
 c=c+1; 
 } 
 } 
 if(c==2) 
 { 
 nx=nx + dig*p; 
 p=p*10; 
 } 
 cont=cont + 1; 
 } 
 
 printf("\n el nuevo numero con los digitos primos es:%d", nx); 
 return 0; 
} 
6. SALIDA EN C: 
 
 
 
7. CODIFICACIÓN JAVA 
 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n, c,dig,nx=0,p=1; 
 System.out.print("Ingrese valor para N = "); 
 n = dato.nextInt(); 
 int cont = 0; 
 while(cont<n){ 
 do{ 
 System.out.print("Ingresa un digito = "); 
 dig = dato.nextInt(); 
 }while(dig>9 || dig<0); 
 c = 0; 
48
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 for(int i = 1; i<=dig;i++){ 
 if(dig % i == 0){ 
 c++; 
 } 
 } 
 if(c==2){ 
 nx = nx+dig*p; 
 p=p*10; 
 } 
 cont++; 
 } 
 System.out.println("El nuevo numero con los dígitos es "+nx); 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
 
 
 
EJEMPLO 14 
1. INTERCAMBIAR LOS DÍGITOS DE LOS EXTREMOS. ANÁLISIS, SI EL NÚMERO 
ES 2019, SOLO LOS EXTREMOS 2 Y 9 DEBE MOSTRAR 9012. 
2. ANÁLISIS 
Algoritmo ejercicio14 
 Definir x, i,e,d,pd, res Como entero 
 Escribir "Introduzca el valor para X=" 
 Leer xres<- 0 
 i <- 1 
 e <- 1 
 Mientras x >= 10 Hacer 
 d<-x mod 10 
 x<- trunc (x/10) 
 Si i == 1 Entonces 
 pd<- d 
 SiNo 
 res<-res + (d*e) 
 Fin Si 
 i<- i +1 
 e<- e *10 
 Fin Mientras 
 res<-res + (pd * e) + x 
 Escribir "El numero es:", res 
FinAlgoritmo 
49
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
3. DIAGRAMA DE FLUJO 
 
4. PRUEBA DE ESCRITORIO 
 
VARIABLES MOSTRAR 
X res I e D Pd 
2023 0 1 1 3 3 3022 
202 10 2 10 2 
20 10 3 100 0 
2 3012 4 1000 2 
0 
 
 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*14. INTERCAMBIAR LOS DÍGITOS DE LOS EXTREMOS. ANÁLISIS, SI 
EL NÚMERO ES 2023, SOLO LOS EXTREMOS 2 Y 3 DEBE MOSTRAR 
3022.*/ 
#include <cstdio> 
int main(){ 
 int x, res,i,e,d,pd; 
 res=0; 
 i=1; 
 e=1; 
 printf("Introduzca en valor para X: 
"); 
 scanf("%d", & x); 
 while(x>=10) 
 { 
 d=x%10; 
 x=x/10; 
 if(i==1) 
 { 
 pd=d; 
 } 
 else 
6. SALIDA EN C: 
 
 
 
50
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 { 
 res= res + (d*e); 
 } 
 i=i+1; 
 e=e*10; 
 } 
 res=res+(pd*e)+x; 
 printf("\n el nuneroes:%d",res); 
 return 0; 
} 
 
7. CODIFICACIÓN JAVA 
 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int x,res=0,i=1,e=1,d,pd=0; 
 System.out.print("Ingrese valor para X = "); 
 x = dato.nextInt(); 
 while(x >= 10){ 
 d = x%10; 
 x = x/10; 
 if(i == 1){ 
 pd=d; 
 }else{ 
 res=res+(d*e); 
 } 
 i++; 
 e = e*10; 
 } 
 res = res+(pd*e)+x; 
 System.out.println("EL numero es : "+res); 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
EJEMPLO 15 
1. ORDENAR LOS DÍGITOS IMPARES A LA IZQUIERDA Y LOS PARES A LA 
DERECHA. ANÁLISIS, SI EL NÚMERO ES 72149 EL ORDEN SERÁ: 71924. 
2. ANÁLISIS 
Algoritmo ejercicio15 
51
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 Definir num, nn, parr, imp, ep, ei, cp, ci, d Como entero 
 Escribir "Introduzca el valor para Num=" 
 Repetir 
 Leer num 
 Hasta Que num >=10 
 nn<- num, parr <- 0, imp <- 0, ep<- 1, ei <- 1, cp <- 0, ci <- 0 
 Mientras nn > 10 Hacer 
 d<-nn mod 10 
 nn<- trunc (nn/10) 
 Si d mod 2 == 0 Entonces 
 par <- par + (d * ep) 
 ep<-ep * 10 
 cp <- cp + 1 
 SiNo 
 imp<-imp + (d * ei) 
 ei<-ei*10 
 ci<-ci +1 
 Fin Si 
 num<- imp * (10 ^ cp) 
 num<- num + parr 
 Fin Mientras 
 Escribir "El numero es:", num 
FinAlgoritmo 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
VARIABLES 
MOSTRAR num nn par imp ep ei cp ci d 
72149 72149 0 0 1 1 0 0 9 71924 
9 7214 4 9 10 10 1 1 4 
9 721 24 19 100 100 2 2 1 
52
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90 72 719 1000 3 2 
94 7 7 
 190 0 
 194 
 1900 
1924 
71900 
71924 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*15. oODENAR LOS DÍGITOS IMPARES A LA IZQUIERDA Y LOS PARES A LA DERECHA. ANÁLISIS, SI EL NÚMERO ES 72149 EL 
ORDEN SERÁ: 71924.*/ 
#include <cstdio> 
int main(){ 
 int num, nn, par, imp, ep, ei, cp, ci, d; 
 do 
 { 
 printf("Introduzca en valor: "); 
 scanf("%d", & num); 
 }while(num<= 10); 
 nn=num, par=0, imp=0, ep=1, ei=1, cp=0, ci=0; 
 while(nn > 0) 
 { 
 d=nn%10; 
 nn=nn/10; 
 if(d % 2 ==0){ 
 par= par + (d*ep); 
 ep=ep*10; 
 cp=cp +1; 
 } 
 else{ 
 imp=imp+(d*ei); 
 ei=ei*10; 
 ci=ci+1; 
 } 
 num= imp * (10 ^cp); 
 num = num + par; 
 } 
 printf("\n El nuevo numero es:%d",num); 
 return 0; 
} 
6. CODIFICACIÓN JAVA 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int num, nn, par, imp, ep, ei, cp, ci,d; 
 do{ 
53
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 System.out.print("Introduzca en valor: "); 
 num = dato.nextInt(); 
 }while(num <=10); 
 nn = num; 
 par = 0; 
 imp = 0; 
 ep=1; 
 ei=1; 
 cp=0; 
 ci=0; 
 while(nn > 0){ 
 d = nn %10; 
 nn=nn/10; 
 if(d % 2 == 0){ 
 par = par + (d*ep); 
 ep = ep * 10; 
 cp = cp+1; 
 }else{ 
 imp = imp+(d*ei); 
 ei=ei*10; 
 ci=ci+1; 
 } 
 num = imp+(int)Math.pow(10, cp); 
 num = num + par; 
 } 
 System.out.println("\nEl nuevo numero es "+num); 
 } 
} 
7. SALIDA EN JAVA: 
 
 
 
 
 
 
 
 
 
EJEMPLO 16 
1. DADO UN NÚMERO X, SUMAR CADA DOS DÍGITOS, SI LA SUMA ES DE DOS 
DÍGITOS VOLVER A SUMAR LOS DÍGITOS DEL RESULTADO HASTA QUE SEA UN 
SOLO DIGITO, SI EN EL NÚMERO QUEDA UN DIGITO SE DEBE MANTENER, CON 
LOS RESULTADOS OBTENIDOS FORMAR UN NÚMERO DONDE EL RESULTADO 
DE LA PRIMERA SUMA VIENE A SER EL DIGITO MÁS SIGNIFICATIVO, 
DESPLEGAR EL NUEVO NÚMERO 
2. ANÁLISIS 
Algoritmo ejercicio16 
 Definir x, d1,d2,s,nx,p Como entero 
 Escribir "Introduzca el valor para X =" 
 Leer x 
 nx<- 0, p<- 1 
54
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 Mientras x > 9 Hacer 
 d1<-x mod 10 
 x <- trunc (x/10) 
 d2<-x mod 10 
 x <- trunc (x/10) 
 s<-d1+ d2 
 Si s >= 10 Entonces 
 m <- s mod 10 
 n <-trunc (s/10) 
 s <- m+n 
 Fin Si 
 nx<- nx * p +s 
 p <- p *10 
 Fin Mientras 
 Si x>0 Entonces 
 nx <- nx * 10 + x 
 Fin Si 
 Escribir "El numero es:", nx 
FinAlgoritmo 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
VARIABLES 
MOSTRAR X NX P D1 D2 S M N 
47835 0 1 5 3 8 5 1 864 
4783 8 10 8 7 15 
478 86 100 6 
47 864 
4 
 
55
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*16. DADO UN NÚMERO X, SUMAR CADA DOS DÍGITOS, SI LA SUMA ES DE 
DOS DÍGITOS VOLVER A SUMAR LOS DÍGITOS DEL RESULTADO HASTA QUE 
SEA UN SOLO DIGITO, SI EN EL NÚMERO QUEDA UN DIGITO SE DEBE 
MANTENER, CON LOS RESULTADOS OBTENIDOS FORMAR UN NÚMERO 
DONDE EL RESULTADO DE LA PRIMERA SUMA VIENE A SER EL DIGITO MÁS 
SIGNIFICATIVO, DESPLEGAR EL NUEVO NÚMERO*/ 
#include <cstdio> 
int main(){ 
 int x, nx, p, d1,d2,s,m,n; 
 printf("Introduzca en valor X: "); 
 scanf("%d", & x); 
 nx=0; 
 p=1; 
 while(x > 9) 
 { 
 d1=x % 10; 
 x= x / 10; 
 d2=x % 10; 
 x= x / 10; 
 s= d1+ d2; 
 if(s >= 10) 
 { 
 m= s % 10; 
 n= s / 10; 
 s= m + n; 
 } 
 nx= nx *p + s; 
 p = p*10; 
 } 
 if(x>0) 
 { 
 nx = nx *10 + x; 
 } 
 printf("\n El nuevo numero es:%d",nx); 
 return 0; 
} 
 
6. SALIDA EN C: 
 
 
 
7. CODIFICACIÓN JAVA 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int x, nx, p, d1, d2, s, m, n; 
 System.out.print("Ingresa un valor para X = "); 
 x = dato.nextInt(); 
 nx = 0; 
 p = 1; 
 while(x > 9){ 
 d1 = x%10; 
 x = x/10; 
 d2 = x % 10; 
 x = x/10; 
56
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 s = d1 +d2; 
 if(s >= 10){ 
 m = s % 10; 
 n = s / 10; 
 s = m + n; 
 } 
 nx = nx * p + s; 
 p = p*10; 
 } 
 if(x > 0){ 
 nx = nx * 10 + x; 
 } 
 System.out.println("El numero es = "+nx); 
 } 
} 
8. SALIDA EN JAVA: 
 
 
 
57
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 CAPITULO IV 
CICLO DO-WHILE (hacer - mientras) 
 
4.1. DEFINICIÓN 
 
El ciclo while es una estructura que permite ejecutar operaciones de 
manera repetitiva sin la necesidad de tener un valor inicial, una 
característica del ciclo while es que su condicional no dependen de 
un valor entero sin de una variable bandera o booleana, es decir que 
el ciclo se ejecutará mientras la condición sea verdadera. 
A diferencia del ciclo while, el ciclo do while permite ejecutar al 
menos una vez el ciclo incluso si la condición es falsa. 
 
4.2. SINTAXIS 
La sintaxis del ciclo Do While es un tanto larga a diferencia del ciclo while, pero no 
significa que esta sea compleja de leer, a diferencia del ciclo while, Do While lleva la 
condición al final de su sintaxis. 
A continuación, vemos la sintaxis del ciclo do - while: 
 
 
 
 
 
 
 
 
 
Línea 1: Esta línea no evalúa ninguna expresión, esta línea da el paso a la ejecución del 
ciclo y luego permite la valoración de la condición. 
Línea 2: en la línea 2 se observa una llave de apertura “{“, lo cual indica que allí es el 
inicio de las instrucciones del ciclo que será ejecutado mientras la condicional será 
verdadera. 
Línea 3-7: estas líneas representan el proceso que se ejecutaran mientras la condicional 
sea verdadera. 
Línea 8: esta última línea se observa una llave cerrada "}", el cual indica que allí termina 
el proceso del ciclo while. Una vez que la condición será falsa el bucle termina en esa 
línea de código y continua con la ejecución del resto del programa. 
Línea 9: en esta línea vemos la declaración del ciclo do while en letras azules en la cual 
sigue entre paréntesis la condición para finalizar el ciclo, mientras la condición sea 
verdadera, retorna al bucle para ejecutar las operaciones o el proceso indicado. 
EJEMPLO: 
58
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
Aclaración: 
El bloque de instrucciones o cuerpo del ciclo 
Repetir-HastaQue, se ejecutar´a por lo menos 
una vez. 
 
PSEUDOCODIGO DIGRAMA DE FLUJO LENGUAJE C LENGUAJE JAVA 
 
 
Repetir 
 f <- f * c 
 c <- c + 1 
Hasta Que c > n 
 do 
 { 
 f = f * c; 
 c = c + 1; 
 }while(c <= n); 
do 
{ 
 f = f*c; 
 c++; 
 }while( c <= n); 
 
 
4.3. REPRESENTACIÓN CICLO DO-WHILE EN DIAGRAMA DE FLUJO 
 
La instrucción Repetir-Hasta Que ejecuta una secuencia de 
instrucciones hasta que la condición sea verdadera. 
 
Repetir 
<instrucciones> 
Hasta Que <condición> 
 
 
 
En el diagrama se puede observar la manera en que es representado 
el ciclo Do - While en un diagrama de flujo. 
 
El funcionamiento del ciclo Do-While: 
En este ciclo se ejecutará al menos una vez el bucle, aunque la 
condición sea falsa, finalizado el proceso se evalúa la condición y si 
la misma es verdadera, retorna al inicio del ciclo para ejecutarse el 
proceso, una vez que la condición sea falsa sale del ciclo para continuar con el programa. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
Aclaración: 
Tanto el ciclo Mientras-FinMientras y Repetir-
HastaQue se ejecutan mientras la evaluación de 
la condición arroje un resultado verdadero. 
El Mientras-FinMientras evalúa la condición al 
comienzo, el Repetir-HastaQue la evalúa al final. 
 
 
 
 
 
60
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
EJEMPLO 17 
1. REALIZAR UN ALGORITMO QUE OBTENGA LA FACTORIAL DE UN NÚMERO. 
2. ANÁLISIS 
Algoritmo ejercicio17 
 Escribir "Introduzca el valor para N =" 
 Leer N 
 f<- 1 
 c<- 1 
 Repetir 
 f <- f * c 
 c <- c + 1 
 Hasta Que c > n 
 Escribir "La factorial es:", f 
FinAlgoritmo 
 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
 
 
 
 
 
 
 
VARIABLES 
MOSTRAR 
n f c 
5 1 1 120 
 1 2 
 2 3 
 6 4 
 24 5 
 120 6 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*17. REALIZAR UN ALGORITMO QUE OBTENGA LA FACTORIAL DE UN 
NÚMERO.*/ 
#include <cstdio> 
int main(){ 
 int n, f, c; 
 printf("Introduzca en valor N: "); 
 scanf("%d", & n); 
 f=1; 
 c=1; 
 do 
 { 
 f=f*c; 
 c = c+1; 
6. SALIDA EN C: 
 
 
61
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
 }while(c <= n); 
 printf(" La factorial de un numero 
es:%d",f); 
 return 0; 
} 
 
7. CODIFICACIÓN JAVA 
 
package pkgDowhile; 
import java.util.*; 
public class DoWhile { 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n, f,c; 
 System.out.print("Ingresa un numero para N= "); 
 n = dato.nextInt(); 
 f=1; 
 c=1; 
 do{ 
 f = f*c; 
 c++; 
 }while(c<=n); 
 System.out.println("La factorial del número="+f); 
 } 
} 
8. SALIDA EN JAVA: 
 
EJEMPLO 18 
1. INGRESAR POR TECLADO N NÚMEROS ENTEROS Y CALCULAR CUÁNTOS 
SON POSITIVOS, NEGATIVOS Y NEUTROS. 
2. ANÁLISIS 
Algoritmo ejercicio18 
 Escribir "Introduzca el valor para N =" 
 Leer N 
 pos<- 0, neg<- 0, neu<- 0, c<- 1 
 Repetir 
 Escribir "Introduzca un Numero =" 
 Leer num 
 Si num==0 Entonces 
 neu<- neu + 1 
 SiNo 
 Si num < 0 Entonces 
 neg<-neg + 1 
 SiNo 
62
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 pos<-pos + 1 
 Fin Si 
 Fin Si 
 c <- c + 1 
 Hasta Que c > n 
 Escribir "Neutro:", neu 
 Escribir "Negativo:", neg 
 Escribir "Positivo:", pos 
FinAlgoritmo 
3. DIAGRAMA DE FLUJO 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4. PRUEBA DE ESCRITORIO 
 
 
 
 
 
 
 
 
VARIABLES MOSTRAR N pos neg neu c num 
6 0 0 0 1 -1 2,2,2 
 1 1 1 2 -30 
 2 2 2 3 3 
 4 35 
 5 0 
 6 0 
 7 
 
63
ESTRUCTURAS REPETITIVAS 
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
VOLUMEN 2
 
 
5. CODIFICACIÓN DEV-C++ 5.2.0.1 
/*18. INGRESAR POR TECLADO N NÚMEROS ENTEROS Y CALCULAR CUÁNTOS SON POSITIVOS, NEGATIVOS Y 
NEUTROS.*/ 
#include <cstdio> 
int main(){ 
 int n, pos, neg, neu, c, num; 
 printf("Introduzca en valor N: "); 
 scanf("%d", & n); 
 c=1, pos=0, neg=0, neu=0; 
 do 
 { 
 printf("Introduzca un Numero: "); 
 scanf("%d", & num); 
 if(num == 0) 
 { 
 neu = neu +1; 
 } 
 else 
 { 
 if(num < 0) 
 { 
 neg= neg + 1; 
 } 
 else 
 { 
 pos= pos +1; 
 } 
 } 
 c = c+1; 
 }while(c <= n); 
 printf(" \nNumeros Positivos:%d",pos); 
 printf(" \nNumeros Negativos:%d",neg); 
 printf(" \nNumeros Neutros:%d",neu); 
 return 0; 
} 
6. SALIDA EN C: 
 
 
 
 
 
 
 
 
 
 
 
 
7. CODIFICACIÓN JAVA 
package pkgwhile; 
import java.util.Scanner; 
public class While { 
64
INTRODUCCIÓN A LA PROGRAMACIÓN C / JAVA
ESTRUCTURAS REPETITIVAS 
VOLUMEN 2
 
 
 public static void main(String[] args) { 
 Scanner dato = new Scanner(System.in); 
 int n, pos, neg, neu, c, num; 
 System.out.print("Introduzca en valor N: "); 
 n = dato.nextInt(); 
 c=1; 
 pos=0; 
 neg=0; 
 neu=0; 
 do 
 { 
 System.out.print("Introduzca un Numero: "); 
 num=dato.nextInt(); 
 if(num == 0) 
 { 
 neu = neu +1; 
 } 
 else 
 { 
 if(num < 0) 
 { 
 neg= neg + 1; 
 } 
 else 
 {

Continuar navegando