Download ESTRUCTURAS LÓGICAS DE CONTROL

Document related concepts
no text concepts found
Transcript
Introducción a la Computación
Unidad 1:
INTRODUCCIÓN AL CONCEPTO DE ARCHIVOS.
COMUNICACIÓN Y REDES.
Semana 01
Introducción a la Computación
Semana 01
Objetivos:
• Introducción al concepto de archivos.
Definir los conceptos generales de diseño
de Archivos.
Explicar Casos Prácticos de Aplicación.
Describir la Administración y
Procesamiento de Archivos
Introducción a los
conceptos de Archivos
Base de Datos
Conjunto de registros (unidades de
información relevante) ordenados y
clasificados para su posterior
consulta, actualización o cualquier
tarea de mantenimiento mediante
aplicaciones específicas
Colección o recopilación de datos
relacionados y organizados en
forma electrónica.
Una guía telefónica es un ejemplo.
Introducción a los
conceptos de Archivos
Archivo
Información que puede almacenarse en
una computadora. Los archivos están
constituidos por el software y los datos.
conjunto de registros referidos a objetos
del mismo tipo.
Es un conjunto de datos relacionados
de manera lógica, como puede ser el
conjunto de los nombres, direcciones y
teléfonos de los empleados de una
empresa determinada.
Introducción a los
conceptos de Archivos
Registro
conjunto de datos
elementales referidos a
un mismo objeto y por
tanto constituyen una
unidad para su proceso.
En el mundo de las
bases de datos, cada
una de las fichas que
componen una tabla.
Introducción a los
conceptos de Archivos
Campo
Mínima unidad de información a la que se puede acceder
cada uno de los datos que forman un registro (o ficha).
Por ejemplo, en la ficha de cada proveedor tendríamos
campos como su nombre, su dirección, su teléfono, etc.
Introducción a los
conceptos de Archivos
Los Campos pueden ser:
NUMERICO
(N)
CARÁCTER
(C)
FECHA O DATE
(D)
LOGICO
(L)
ETC.
La longitud de un campo se
determina en bytes.
Introducción a los
conceptos de Archivos
Tabla:
un conjunto de
registros que tienen
una cierta
homogeneidad (los
datos de nuestros
proveedores).
un conjunto de filas
(Registros) y
columnas (campos)
Introducción a los
conceptos de Archivos
Base de
Datos:
un conjunto
de tablas
relacionadas
entre si.
Introducción a los
conceptos de Archivos
Base de Datos
TABLA
REGISTROS
CAMPOS
EMPLEADOS
Empleado C
Empleado B
Empleado A
Código:
Apellido:
Nombre:
Dirección:
Teléfono:
Sueldo:
Introducción a los
conceptos de Archivos
Ventajas de la Base de Datos
Consistencia de Datos.
Menor Proliferación de Datos.
Facilidad para definir nuevas aplicaciones
Control de Seguridad
Introducción al concepto de archivo
Archivo
Conjunto de Registros referidos a objetos del mismo tipo.
Introducción al concepto de archivo
Digitalización
Señal que utiliza valores discretos en lugar de un
espectro continuo de valores
Video
Audio
Imagen
Introducción al concepto de archivo
Introducción al concepto de archivo
TIPOS DE ARCHIVOS:
•ARCHIVOS DE DATOS.
•ARCHIVOS DE PROGRAMAS.
•ARCHIVOS DE TEXTO.
•ARCHIVOS DE IMÁGENES.
•ARCHIVOS DE AUDIO.
•ARCHIVOS DE VIDEO.
Introducción al concepto de archivo
Introducción al concepto de archivo
Introducción al concepto de archivo
Introducción al concepto de archivo
Base de Datos
TABLA
REGISTROS
CAMPOS
EMPLEADOS
Empleado C
Empleado B
Empleado A
Código:
Apellido:
Nombre:
Dirección:
Teléfono:
Sueldo:
Introducción al concepto de archivo
Introducción al concepto de archivo
Servidor de Archivos,
dispositivo de
almacenamiento de
archivos en una red de área
local, o en Internet, al que
los distintos Usuarios de
la Red pueden Acceder,
en función de los privilegios
que les hayan sido dados
por parte del administrador.
Introducción al concepto de archivo
un Servidor de Archivos
es un dispositivo más
complejo que no sólo
almacena archivos sino
que También los
Administra y los
mantiene en orden a
medida que los usuarios
de la red los solicitan y los
modifican.
Introducción al concepto de archivo
Servidor de Archivos,
suele ser un ordenador
o computadora de altas
prestaciones, con gran
capacidad de
almacenamiento, que
está dedicado
exclusivamente a las
funciones de
administración de
archivos compartidos.
Administración y Procesamiento de Archivos
Aplicación
sistemática
de una serie
de
operaciones
sobre un
conjunto de
datos.
generalmente
por medio de
máquinas.
para
explotar la
información
que estos
datos
representan.
Data Warehouse - Data Marts - Data Mining
Data Warehouse - Data Marts - Data Mining
Data Warehouse - Data Marts - Data Mining
Introducción a la Computación
Unidad 4:
REDES.
Semana 04
Introducción a la Computación
Semana 02
Objetivos:
• Redes
Definir el concepto de Redes.
Explicar los Tipos de Topologías.
Describir los Tipos de Cableado.
REDES
las redes de ordenadores surgieron
como una necesidad de interconectar
los diferentes host de una empresa o
institución para poder así compartir
recursos y equipos específicos
REDES
"Una red es un conjunto de
computadoras (dos como
mínimo), que se unen a través
de medios guiados (físicos) y
no guiados (inalámbricos) se
complementa con equipos
(hardware) y Protocolos
(software), para compartir
información y recursos, con el
fin de llevar a cabo una
actividad o labor de forma
eficiente y eficaz."
Clasificación de las redes según la
tecnología de transmisión:
Redes de Broadcast. Aquellas redes en las que la
transmisión de datos se realiza por un sólo canal de
comunicación, compartido entonces por todas las
máquinas de la red. Cualquier paquete de datos enviado
por cualquier máquina es recibido por todas las de la red.
Redes Point-To-Point. Aquellas en las que existen
muchas conexiones entre parejas individuales de
máquinas. Para poder transmitir los paquetes desde una
máquina a otra a veces es necesario que éstos pasen por
máquinas intermedias, siendo obligado en tales casos un
trazado de rutas mediante dispositivos routers.
REDES
Clasificación de las redes según su
tamaño y extensión:
Local Area Network (LAN)
Metropolitan Area Network (MAN)
Wide Area Network (WAN)
REDES
Clasificación de las redes según su
tamaño y extensión:
•Local Area Network (LAN)
•Metropolitan Area Network (MAN)
•Wide Area Network (WAN)
Redes de área local, son redes de ordenadores cuya
extensión es del orden de entre 10 metros a 1 kilómetro.
Son redes pequeñas, habituales en oficinas, colegios y
empresas pequeñas, que generalmente usan la tecnología
de broadcast , siendo velocidades de transmisión típicas de
LAN las que van de 10 a 100 Mbps (Megabits por segundo).
REDES
Clasificación de las redes según su
tamaño y extensión:
•Local Area Network (LAN)
•Metropolitan Area Network (MAN)
•Wide Area Network (WAN)
Redes de área Metropolitana, son redes de ordenadores de
tamaño superior a una LAN, soliendo abarcar el tamaño de
una ciudad. Son típicas de empresas y organizaciones que
poseen distintas oficinas repartidas en un mismo área
metropolitana, por lo que, en su tamaño máximo,
comprenden un área de unos 10 kilómetros.
REDES
Clasificación de las redes según su
tamaño y extensión:
•Local Area Network (LAN)
•Metropolitan Area Network (MAN)
•Wide Area Network (WAN)
Redes de área extensa, tienen un tamaño superior a una
MAN, y consisten en una colección de host o de redes LAN
conectadas por una subred. Esta subred está formada por
una serie de líneas de transmisión interconectadas por
medio de routers, aparatos de red encargados de rutear o
dirigir los paquetes hacia la LAN
Internet
Una Internet es una red de redes, vinculadas mediante
ruteadores, gateways. Un gateway o pasarela es un
computador especial que puede traducir información entre
sistemas con formato de datos diferentes
Redes inalámbricas
Las redes inalámbricas son redes cuyos medios físicos
no son cables de cobre de ningún tipo, lo que las
diferencia de las redes anteriores. Están basadas en la
transmisión de datos mediante ondas de radio,
microondas, satélites o infrarrojos.
Clasificación de las redes según el tipo de
transferencia de datos que soportan:
Redes de transmisión simple. Son
aquellas redes en las que los datos sólo
pueden viajar en un sentido.
Redes Half-Duplex. Aquellas en las que
los datos pueden viajar en ambos
sentidos, pero sólo en uno de ellos en
un momento dado. Es decir, sólo puede
haber transferencia en un sentido a la vez.
Redes Full-Duplex. Aquellas en las que
los datos pueden viajar en ambos
sentidos a la vez.
Modelo de Referencia OSI
la Organización Internacional
para la Normalización (ISO)
realizó varias investigaciones
acerca de los esquemas de
red. La ISO reconoció que era
necesario crear un modelo
que pudiera ayudar a los
diseñadores de red a
implementar redes que
pudieran comunicarse y
trabajar en conjunto
(interoperabilidad) y por lo
tanto, elaboraron el modelo
de referencia OSI en 1984.
Tipos de Topologías
La disposición de los diferentes componentes de una red
se conoce con el nombre de topología de la red. La
topología idónea para una red concreta va a depender de
diferentes factores, como el número de máquinas a
interconectar, el tipo de acceso al medio físico que
deseemos, etc.
Tipos de Topologías
Topología de bus
Topología de anillo (doble)
Topología en estrella (extendida)
Topología en árbol
Topología en malla completa
Topología de red celular
Topología irregular
Topología de bus
todos sus nodos conectados directamente a un enlace y
no tiene ninguna otra conexión entre nodos. Físicamente
cada host está conectado a un cable común, por lo que se
pueden comunicar directamente, aunque la ruptura del
cable hace que los hosts queden desconectados.
Es una topología antigua ya no muy utilizada se presenta
en equipos denominados hub.
Topología de anillo
Se compone de un solo anillo
cerrado formado por nodos y
enlaces, en el que cada nodo
está conectado solamente con
los dos nodos adyacentes.
Los dispositivos se conectan
directamente entre sí por
medio de cables en lo que se
denomina una cadena
margarita. Para que la
información pueda circular,
cada estación debe transferir la
información a la estación
adyacente.
Topología de anillo doble
Una topología en anillo doble
consta de dos anillos
concéntricos, donde cada host
de la red está conectado a
ambos anillos, aunque los dos
anillos no están conectados
directamente entre sí. Es
análoga a la topología de anillo,
con la diferencia de que, para
incrementar la confiabilidad y
flexibilidad de la red, hay un
segundo anillo redundante que
conecta los mismos dispositivos.
Topología en estrella
tiene un nodo central desde el
que se irradian todos los enlaces
hacia los demás nodos. Por el
nodo central, generalmente
ocupado por un Switch, pasa
toda la información que circula
por la red.
La ventaja principal es que
permite que todos los nodos se
comuniquen entre sí de manera
conveniente. La desventaja
principal es que si el nodo central
falla, toda la red se desconecta.
Topología en estrella extendida
La topología en estrella extendida
es igual a la topología en estrella,
con la diferencia de que cada
nodo que se conecta con el nodo
central también es el centro de
otra estrella. Generalmente el
nodo central está ocupado por un
switch, y los nodos secundarios
por hubs o switch.
La ventaja de esto es que el
cableado es más corto y limita la
cantidad de dispositivos que se
deben interconectar con cualquier
nodo central.
Topología en árbol
Es similar a la topología en estrella extendida, salvo
en que no tiene un nodo central. En cambio, un nodo
de enlace troncal, generalmente ocupado por un
switch, desde el que se ramifican los demás nodos.
Topología en malla completa
cada nodo se enlaza directamente con los demás
nodos. Las ventajas son que, como cada nodo se
conecta físicamente a los demás, creando una
conexión redundante, si algún enlace deja de
funcionar la información puede circular a través de
cualquier cantidad de enlaces hasta llegar a destino.
Además, esta topología permite que la información
circule por varias rutas a través de la red
Topología de red celular
La topología celular está compuesta por áreas
circulares o hexagonales, cada una de las cuales
tiene un nodo individual en el centro.
La topología celular es un área geográfica dividida en
regiones (celdas) para los fines de la tecnología
inalámbrica. En esta tecnología no existen enlaces
físicos; sólo hay ondas electromagnéticas.
Topología irregular
En este tipo de topología no existe un
patrón obvio de enlaces y nodos. El
cableado no sigue un modelo
determinado; de los nodos salen
cantidades variables de cables. Las
redes que se encuentran en las
primeras etapas de construcción, o se
encuentran mal planificadas, a menudo
se conectan de esta manera.
Las Tecnologías LAN más comunes son:
Ethernet: topología de bus lógica y en
estrella física o en estrella extendida.
Token Ring: topología de anillo lógica y
topología física en estrella.
FDDI: topología de anillo lógica y
topología física de anillo doble.
Equipo de conectividad
Por lo general, para redes pequeñas, la longitud del
cable no es limitante para su desempeño; pero si la red
crece, tal vez llegue a necesitarse una mayor extensión
de la longitud de cable o exceder la cantidad de nodos
especificada. Existen varios dispositivos que extienden
la longitud de la red, donde cada uno tiene un propósito
específico. Sin embargo, muchos dispositivos
incorporan las características de otro tipo de dispositivo
para aumentar la flexibilidad y el valor.
Equipo de conectividad
•Switches
•Repetidores
•Puentes (bridges)
•Ruteadores (Router)
•Compuertas (Gateway)
Son un punto central de
conexión para nodos de red
que están dispuestos de
acuerdo a una topología física
de estrella.
Equipo de conectividad
•Switches
•Repetidores
•Puentes (bridges)
•Ruteadores (Router)
•Compuertas (Gateway)
Es un dispositivo que permite
extender la longitud de la red;
amplifica y retransmite la señal
de red.
Equipo de conectividad
•Switches
•Repetidores
•Puentes (bridges)
•Ruteadores (Router)
•Compuertas (Gateway)
Dispositivo que conecta dos
LAN separadas para crear lo
que aparenta ser una sola
LAN.
Equipo de conectividad
•Switches
•Repetidores
•Puentes (bridges)
•Ruteadores (Router)
•Compuertas (Gateway)
Similares a los puentes, operan
a un nivel diferente. Requieren
que cada red tenga el mismo
sistema operativo de red, para
poder conectar redes basadas
en topologías lógicas diferentes
como Ethernet y Token Ring.
Equipo de conectividad
•Switches
•Repetidores
•Puentes (bridges)
•Ruteadores (Router)
•Compuertas (Gateway)
Permite que los nodos de una
red se comuniquen con tipos
diferentes de red o con otros
dispositivos.
Cableado Estructurado
La LAN debe tener un sistema de cableado
que conecte las estaciones de trabajo
individuales con los servidores de archivos y
otros periféricos. Si sólo hubiera un tipo de
cableado disponible, la decisión sería
sencilla. Lo cierto es que hay muchos tipos de
cableado, cada uno con sus propios
defensores y como existe una gran variedad
en cuanto al costo y capacidad, la selección
no debe ser un asunto trivial.
Tipos de cableado
•Cable de par trenzado.
•Cable coaxial.
•Cable de fibra óptica.
Es con mucho, el
tipo menos caro y
más común de
medio de red
Tipos de cableado
•Cable de par trenzado.
•Cable coaxial.
•Cable de fibra óptica.
Es tan fácil de instalar y
mantener como el cable
de par trenzado, y es el
medio que se prefiere
para las LAN grandes.
Tipos de cableado
•Cable de par trenzado.
•Cable coaxial.
•Cable de fibra óptica.
Tiene mayor velocidad de
transmisión, es inmune a la
interferencia de frecuencias
de radio y capaz de enviar
señales a distancias
considerables sin perder su
fuerza. Tiene un costo mayor
Introducción a la Computación
ALGORITMOS
SEMANA 05
Introducción a la Computación
Semana 05
Objetivos:
• Desarrollo de conceptos básicos:
- Algoritmos
- Pseudocodigo
- Diagrama de Flujo
- Programación (en Java y C++)
• Visualización de Datos
• Empleo de Comentarios
MÉTODO PARA LA SOLUCION DE PROBLEMAS UTILIZANDO LA COMPUTADORA
Método de las 6’D
Etapa 01
Descripción
Problema
Etapa 02
Definición
Solución
Etapa 03
n veces
Diseño
Solución
Etapa 04
Ingeniería reversa
Desarrollo
Solución
Etapa 05
Depuración
Pruebas
Etapa 06
Document.
Método de las 6’D
Etapas para la solución de problemas
Diseño
solución
ALGORITMO
Desarrollo
solución
PROGRAMACION
Lenguajes de Programación:
Herramientas:
PSEUDOCODIGO
JAVA
DIAGRAMAS DE FLUJO
LENGUANJE C++
ALGORITMO - CONCEPTOS BÁSICOS
ALGORITMO
Definición:
El algoritmo constituye una lista completa de pasos secuenciales y
una descripción de datos necesarios para resolver un determinado
problema.
•
Una lista de pasos secuenciales que
deben ser ejecutados.
•
Una descripción de los datos que son
manipulados por estos pasos.
ALGORITMO - CONCEPTOS BÁSICOS
Algoritmo
Características:
•
Una descripción de acciones que deben ser ejecutadas (Pasos
Secuenciales).
•
Una descripción de los datos que son manipulados por estas
acciones (Estructuras de Datos).
•
Un algoritmo debe ser preciso indicando el orden de realización
de cada paso.
•
Todo algoritmo debe ser finito. Si se sigue un algoritmo este debe
terminar en algún momento.
•
Un algoritmo debe estar definido. Si se sigue un algoritmo dos
veces se debe obtener el mismo resultado.
ALGORITMO - CONCEPTOS BÁSICOS
Algoritmo
Características:
•
Un algoritmo puede tener o no datos de entrada.
•
Un algoritmo producirá uno o mas datos de salida.
•
Los datos de entrada y salida deben almacenarse en variables.
•
El resultado que se obtenga debe satisfacer los requerimientos de
la persona interesada (efectividad).
•
Debe ser estructurado. Es decir, debe ser fácil de leer, entender,
usar y cambiar si es preciso.
ALGORITMO - CONCEPTOS BÁSICOS
Algoritmo
Herramientas:
Se dispone de diversas herramientas para ayudar a los programadores
a desarrollar los algoritmos.
Algoritmos
Herramientas:
Pseudocódigo
Diagrama de flujo
ALGORITMO - CONCEPTOS BÁSICOS
Algoritmo - PSEUDOCÓDIGO
Definición:
Un pseudocódigo permite
expresar un algoritmo con
palabras en castellano que
son semejantes a las
instrucciones de un
lenguaje de programación.
Algoritmo Mensaje
ENTRADA: sueldo
SALIDA: sueldo
INICIO
REAL sueldo
sueldo = 0
LEER sueldo
sueldo = sueldo * 0.85
ESCRIBIR sueldo
FIN
ALGORITMO - CONCEPTOS BÁSICOS
Algoritmo - PSEUDOCÓDIGO
Reglas básicas
ENTRADA
En este se consideran las variables que serán
utilizadas para almacenar los datos ingresados por el
usuario
SALIDA
En este se consideran las variables que serán
utilizadas para almacenar los datos que serán
mostrados al usuario
INICIO/FIN
Estas reglas especifican el inicio y el final del
algoritmo. Todas las instrucciones se colocan entre
estas reglas y constituyen el cuerpo del algoritmo. En
el cuerpo del algoritmo se encontrarán los pasos a
seguir para el desarrollo de la solución.
ALGORITMO - CONCEPTOS BÁSICOS
Algoritmo – DIAGRAMA DE FLUJO
Definición:
Es una herramienta que
mediante el empleo de
símbolos especializados y
líneas de flujo, nos permite
ilustrar el flujo lógico de
pasos y datos de un
algoritmo.
INICIO
ENTERO i
LEER i
i<100
i = i*1.20
IMPRIMIR
FIN
ESTRUCTURAS DE DATOS
Símbolos básicos
INICIO / FIN
Este símbolo permite marcar el inicio y el final del algoritmo
ENTRADA Este símbolo es empleado para el ingreso de datos
y la visualización de la información que resulta del
procesamiento
SALIDA Este símbolo es empleado para la visualización de la
información que resulta del procesamiento
DECISION
Permite seleccionar entre dos posibles alternativas de solución
PROCESO
Empleado para signar valores a variables y resultado de
operaciones matemáticas
FLUJOS (LINEAS)
Permiten unir los diagramas y mostrar la secuencia lógica de la
solución del problema
CONECTOR
Permiten unir los diagramas y mostrar la secuencia lógica de la
solución del problema
ALGORITMO - CONCEPTOS BÁSICOS
PROGRAMACION
La programación es la traducción del modelamiento y los algoritmos en
sentencias que la computadora puede comprender y ejecutar.
En términos sencillo es la acción de escribir programas para una
computadora utilizando alguno de los lenguajes de programación
existentes.
ALGORITMO - CONCEPTOS BÁSICOS
PROGRAMACION – Java
Definición:
Java es un lenguaje de
Programación Orientado
a Objetos desarrollado
por Sun Microsystems.
Es un lenguaje de
propósito general que
puede ser utilizado para
el desarrollar cualquier
tipo de aplicaciones.
Estructura básica:
package domApli ;
class PrgBienvenida {
public static void main (String[] args) {
}
}
ALGORITMO - CONCEPTOS BÁSICOS
PROGRAMACION – C++
Definición:
“C” es un lenguaje de
Programación de
propósito general
desarrollado en los
laboratorios de Bell en
1983.
C++ es un lenguaje
orientado a objetos y es
una versión ampliada y
mejorada del Lenguaje
C.
Estructura básica:
#include <iostream>
using namespace std ;
int main( ) {
return 0 ;
}
ESTRUCTURAS LÓGICAS
VISUALIZACIÓN DE DATOS
Definición:
La visualización de datos nos permite mostrar los datos a través de
la pantalla de la computadora.
ESTRUCTURAS LÓGICAS
Visualización de datos
En Pseudocódigo
En DF
nombreVariable
ESCRIBIR nombreVariable
ESCRIBIR x + 2
ESCRIBIR “Hola”
En Java – Clase System
x+2
“Hola”
En “C” – cout<<
System.out.print (nombreVariable) ;
cout << nombreVariable ;
System.out.print (x + 2);
cout << (x + 2);
System.out.print ( “Hola” ) ;
cout << “Hola” ;
Previamente antes de la declaración de main()
debe colocarse #include <iostream.h> y using
std::cout;
ESTRUCTURAS LÓGICAS
Visualización de datos
Ejemplo: Desarrollo una solución que permita mostrar el saludo “Bienvenidos al desarrollo de algoritmos”
INICIO
Algoritmo Saludo
ENTRADA:
SALIDA: “Bienvenidos al desarrollo de algoritmos”
INICIO
ESCRIBIR “Bienvenidos al desarrollo de algoritmos”
FIN
“Bienvenidos al
desarrollo de algoritmos”
FIN
ESTRUCTURAS LÓGICAS
JAVA
package dominioDeLaAplicacion ;
class PrgSaludo {
}
public static void main (String [ ] args ) {
System.out.print (“Bienvenidos al desarrollo de algoritmos”) ;
}
“C”
#include <iostream>
using std::cout ;
int main ( ) {
cout << “Bienvenidos al desarrollo de algoritmos” ;
return 0;
}
ESTRUCTURAS LÓGICAS
Ejemplo: Desarrollo una solución que permita mostrar el saludo:
“Bienvenidos al desarrollo de algoritmos
estamos creando una segunda línea”
package domApli;
class PrgSaludo2 {
JAVA
}
public static void main (String [ ] args ) {
System.out.println ( “Bienvenidos al desarrollo de algoritmos”) ;
System.out.print ( “Estamos mostrando datos en la segunda línea”) ;
}
#include <iostream>
using std::cout ;
using std::endl ;
C++
int main ( ) {
cout << “Bienvenidos al desarrollo de algoritmos” << endl ;
cout << “Estamos mostrando datos en la segunda línea”;
return 0;
}
ESTRUCTURAS LÓGICAS
Visualización de datos / Modificadores \n \t
\n : Permite crear una línea adicional, similar al System.out.println y a endl
\t : Permite hacer una tabulación.
package domApli;
class PrgSaludo2 {
JAVA
}
public static void main (String [ ] args ) {
System.out.print (“Bienvenidos al desarrollo de algoritmos \n estamos creando
una segunda línea”) ;
}
#include <iostream>
using std::cout ;
C++
int main () {
cout << “Bienvenidos al desarrollo de algoritmos \n estamos creando una segunda
línea” ;
return 0;
}
ESTRUCTURAS LÓGICAS
Visualización de datos / Modificadores \n \t
\t :
Permite crear un espacio de tabulación antes de iniciar el párrafo que esta a continuación
Nombre:
Edad:
Danae Flores
11 años
package domApli;
class PrgSaludos {
public static void main (String [ ] args) {
System.out.print ( “nombre: \ t Danae Flores \ n ”) ;
System.out.print (“Edad: \ t 11 años”) ;
}
JAVA
}
#include <iostream>
using std::cout ;
C++
int main ( ) {
cout << “nombre: \ t Danae Flores \ n ” ;
cout << “Edad: \ t 11 años” ;
return 0 ;
}
ESTRUCTURAS LÓGICAS
COMENTARIOS
En Pseudocódigo
En DF
Este es un comentario
COMENTARIO Este es un comentario
En Java
En “C++”
// Este es un comentario de una línea
// Este es un comentario de una línea
/ * Este es un comentario para
múltiples líneas */
/ * Este es un comentario para
múltiples líneas */
ESTRUCTURAS LÓGICAS
/* Este programa, permitira mostra un mensaje empleando
los modificadores \n y \t */
public static void main (String [ ] args ) {
// Visuaización de datos
System.out.print (“nombre: \ t Danae Flores \n Edad: \ t 11 años”);
JAVA
}
/* Este programa, permitira mostra un mensaje empleando
los modificadores \n y \t */
C++
#include <iostream>
using std::cout ;
int main ( ) {
// Visuaización de datos
cout << “nombre: \ t Danae Flores \n Edad: \ t 11 años” ;
return 0;
}
Introducción a la Computación
ESTRUCTURAS DE SECUENCIA
SEMANA 07
ESTRUCTURAS DE SECUENCIA
• Tipos de Datos
• Operadores Matemáticos
• Operadores relacionales y lógicos
• Estructuras de Datos: Variables y constantes
• Ingreso de Datos
ESTRUCTURAS DE SECUENCIA
ESTRUCTURAS LOGICAS
o DE CONTROL
SECUENCIA:
Ingresar
Procesar
Mostrar
DECISIÓN
If (Simples)
If / else (Dobles)
switch (Múltiples)
CONTROL
while
do / while
for
ESTRUCTURA DE DATOS
VARIABLES y CONSTANTES
ARREGLOS
ESTRUCTURAS DE SECUENCIA
TIPOS DE DATOS
PSEUDOCODIGO
DF
JAVA
C++
REPRESENTA A:
ENTERO
int / long
int / long
Un numero entero
REAL
float /double
float /double
Un numero real (Con decimales)
CARÁCTER
char
char
Un solo carácter
TEXTO
String
string
Una cadena de caracteres
LOGICO
boolean
bool
Un valor VERDADERO o FALSO
Tenga presente que las palabras reservadas para el Pseudocódigo, DF,
Java y C++, son reglas o pautas empleadas por estos, por lo que no
podrán ser usadas como nombre de variable o constante.
ESTRUCTURAS DE SECUENCIA
OPERADORES ARITMETICOS
PSEUDOCODIGO
DF
JAVA
C++
+
*
/
RESTO
+
*
/
%
+
*
/
%
REPRESENTA A:
Suma
Resta
Multiplicación
División
Resto / Modulo
ESTRUCTURAS DE SECUENCIA
Importante
• Los operadores que están encerrados entre paréntesis
se evalúan primero. Si existen paréntesis anidados las
expresiones mas internas se evalúan primero.
• Orden de prioridad:
1. * , /
2., RESTO
3. + , • En caso de coincidencia de operadores de igual
prioridad en una expresión, el orden de prioridad será
de izquierda a derecha.
ESTRUCTURAS DE SECUENCIA
OPERADORES RELACIONALES, LOGICOS y DE ASIGNACION
PSEUDOCODIGO
DF
JAVA
C++
REPRESENTA A:
<
<
<
Menor que
>
>
>
Mayor que
=
==
==
Igual que
<=
<=
<=
Menor o igual que.
>=
>=
>=
Mayor o igual que
<>
!=
!=
Distinto de.
NO (Not)
!
!
Negación.
Y (And)
&&
&&
Conjunción.
O (Or)
||
||
Disyunción.
=
=
=
Asignación
ESTRUCTURAS DE DATOS
VARIABLES Y CONSTANTES
Variables :
Una variable es una estructura de datos (lineal-estática) que permite
reservar un espacio con la finalidad de almacenar temporalmente los
datos. Una variable sólo puede almacenar un solo dato a la vez y del
mismo tipo;
Declaración, Almacenamiento de datos e inicialización.
Constantes
Una constate es una estructura de datos que permite almacenar un valor fijo,
el cual va a ser empleado sin lugar a modificación durante el desarrollo del
algoritmo.
Java
C
: final pi = 3.1416
: const pi = 3.1416
ESTRUCTURAS DE DATOS
Variables
Declaración: Significa definir el nombre de la variable y el tipo de dato que
podrá almacenar.
Pseudocódigo / DF
Java
C++
tipoDato nombreDeVariable
: ENTERO nota1
: int nota1
: int nota1
TEXTO nombre
String nombre
string nombre
CARACTER tipo
char tipo
char tipo
Inicialización : Significa asignar un valor inicial a la variable, el cual luego
puede ser modificado mediante el almacenamiento de datos.
nombreDeVariable = valor inicial
Pseudocódigo / DF
Java
C++
: nota1 = 0
: nota1 = 0
: nota1 = 0
nombre = “ “
nombre = “ “
nombre = “ “
tipo = ‘ ’
tipo = ‘ ’
tipo = ‘ ’
Asignación : Significa dar un valor a la variable durante el desarrollo del
algoritmo.
Pseudocódigo / DF
Java
C++
nombreDeVariable = valor
: nota1 = 10
: nota1 = 10
: nota1 = 10
nombre = “ Luis “
nombre = “ Luis “
nombre = “ Luis “
tipo = ‘A’
tipo = ‘A’
tipo = ‘A’
ESTRUCTURAS DE DATOS
Prob. 1 : Desarrollo una solución que permita sumar los números 10 y 15 y mostrar el resultado
INICIO
Algoritmo Suma
ENTRADA:
SALIDA: suma
INICIO
ENTERO num1, num2, suma
num1 = 10
num2 = 15
suma = num1 + num2
ESCRIIBIR suma
FIN
ENTERO num1, num2, suma
num1 = 10
num2 = 15
suma = num1 + num2
suma
FIN
ESTRUCTURAS DE SECUENCIA
“C”
JAVA
package domApli;
class PrgSuma {
public static void main (String [ ] args) {
}
}
#include <iostream>
using std::cout;
int main ( ) {
// declaración
int num1, num2, suma;
// declaración
int num1, num2, suma;
// asignación
num1=10;
num2=15;
// asignación
num1=10;
num2=15;
// operación
suma = num1 + num2;
// operación
suma = num1 + num2;
// Visualización de resultados
System.out.print (suma);
// Visualización de resultados
cout <<suma ;
return 0;
}
ESTRUCTURAS DE SECUENCIA
Prob. 2: Desarrollo una solución que permita calcular el área de un cuadrado sabiendo
que tiene lado = 10.
INICIO
Algoritmo AreaCuadrado
ENTRADA:
SALIDA: area
INICIO
ENTERO lado, area
lado = 10
area = lado * lado
ESCRIIBIR area
FIN
ENTERO lado, area
lado = 10
area = lado * lado
area
FIN
ESTRUCTURAS DE SECUENCIA
“C”
JAVA
package domApli;
class PrgAreaCuadrado {
public static void main (String [ ] args) {
// declaración
int lado, area;
int lado, area;
lado = 10;
// operación
area = lado * lado;
// Visualización de resultados
System.out.print (“El area es: ” + area);
}
int main ( ) {
// declaración
// asignación
}
#include <iostream>
using std::cout;
// asignación
lado = 10;
// operación
area = lado * lado;
// Visualización de resultados
cout << “El area es: ” << area ;
return 0;
}
ESTRUCTURAS DE SECUENCIA
Ingreso de datos
Definición:
Este permite ingresar datos de diferente tipo a través de un
dispositivo de entrada de una computadora (el teclado).
ESTRUCTURAS DE SECUENCIA
Ingreso de datos
En Pseudocódigo
En DF
LEER nombreVariable
En Java – Clase Lectura
nombreVariable = Lectura.leerInt () ;
nombreVariable = Lectura.leerlong ();
nombreVariable = Lectura.leerfloat () ;
nombreVariable = Lectura.leerDouble () ;
nombreVariable = Lectura.leerChar () ;
nombreVariable = Lectura.leerString () ;
nombreVariable
En “C”
cin >> nombreVariable ;
Previamente antes de la declaración del
método main() debe colocarse #include
<iostream> y using std::cin;
ESTRUCTURAS DE SECUENCIA
Prob. 3: Desarrollo una solución que permita ingresar y mostrar el nombre de un alumno
INICIO
Algoritmo MostrarNombre
ENTRADA: nombre
SALIDA: nombre
INICIO
TEXTO nombre
LEER nombre
ESCRIIBIR nombre
FIN
TEXTO nombre
nombre
nombre
FIN
ESTRUCTURAS DE SECUENCIA
“C”
JAVA
package domApli;
import biblioteca.Lectura ;
#include <iostream>
using std::cout;
using std::cin;
class PrgMostrarNombre {
public static void main (String [ ] args) {
String nombre;
//Ingreso de datos
System.out.print (“Ingrese el nombre: “);
nombre = Lectura.leerString();
System.out.print (“El nombre es: ” + nombre);
}
}
int main ( ) {
string nombre;
//Ingreso de datos
cout <<“Ingrese el nombre: “;
cin >> nombre;
cout << “El nombre es: ” << nombre ;
return 0;
}
ESTRUCTURAS DE SECUENCIA
Prob. 4: Desarrollo una solución que ingresar el nombre y dos notas de un alumno y
mostrar su nombre y el promedio obtenido: (nota1+nota2)/2
INICIO
Algoritmo NombrePromedio
ENTRADA: nombre, nota1, nota2
SALIDA: nombre, promedio
INICIO
TEXTO nombre
ENTERO nota1, nota2
REAL promedio
LEER nombre, nota1, nota2
promedio = (nota1 + nota2) / 2
ESCRIIBIR nombre, promedio
FIN
TEXTO nombre REAL promedio
ENTERO nota1, nota2
nombre, nota1, nota2
promedio = (nota1 + nota2) / 2
nombre, promedio
FIN
ESTRUCTURAS DE SECUENCIA
Intentalo…!!!
1.- Se requiere mostrar el resultado de sumar, multiplicar, restar y dividir dos números
121236 y 735
2.- Se requiere ingresar un mensaje por teclado y mostrarlo por la pantalla
3.- Convertir y mostrar una cantidad expresada en dólares en su equivalente en Nuevos
Soles. Ingresar la cantidad en dólares y el tipo de cambio.
4.- Calcular la nota final de un alumno, empleando la siguiente formula:
n f= (n1+n2+n3+(n4*2))
5
5.- Calcular el sueldo de un obrero y calcular un descuento del 5% por concepto de
canasta de fin de año. Mostrar el sueldo inicial, el descuento y el sueldo a cobrar.
6.- Convertir ña temperatura de grados Celsius a grados Fahrenheit, de acuerdo a la
formula: F= (9/5)*C+32
Introducción a la Computación
ESTRUCTURAS DE DECISION
SI – FIN SI
SEMANA 08
ESTRUCTURAS LÓGICAS DE DECISION
ESTRUCTURA LÓGICA DE DECISIÓN SIMPLE (SI.. FINSI)
Definición:
Una estructura de decisión simple “SI... FINSI” permite alterar el flujo
secuencial (o pasos secuenciales) de una solución ejecutando un conjunto
de pasos adicionales si el resultado de una condición lógica es verdadera.
PSEUDOCODIGO
SI (condición)
ENTONCES
instrucciones...
FINSI
EXPLICACIÓN:
Si la condición resulta verdadera, se ejecutan las
instrucciones que se encuentran entre las reglas
ENTONCES y FINSI.
Si la condición resulta falsa, no se ejecutan las
instrucciones que se encuentran entre las reglas
ENTONCES y FINSI
ESTRUCTURAS LÓGICAS DE DECISION
Estructura Lógica de Decisión Simple (SI… FINSI)
ESTRUCTURAS LÓGICAS DE DECISION
Estructura Lógica de Decisión Simple (SI… FINSI)
JAVA y C++
EXPLICACIÓN:
if (condición) {
sentencias...
}
Si la condición resulta verdadera, se ejecutan las
sentencias que se encuentra entre las llaves { }.
Si la condición resulta falsa, no se ejecutan las
sentencias que se encuentran entre las llaves { }.
ESTRUCTURAS LÓGICAS DE DECISION
Problema 1: Calcular y mostrar el área de un cuadrado. Si el área del cuadrado resulta
menor que 100, se deberá visualizar el mensaje “este cuadrado es pequeño”.
INICIO
Algoritmo AreaCuadrado2
ENTERO lado, area
TEXTO mensaje
ENTRADA: lado
SALIDA: area, mensaje
INICIO
ENTERO lado, area
TEXTO mensaje = “ “
LEER lado
area = lado * lado
lado
area = lado * lado
area < 100
F
V
mensaje = “Este cuadrado es pequeño”
SI ( area < 100)
ENTONCES
mensaje = “Este cuadrado es pequeño”
FINSI
ESCRIBIR area, mensaje
FIN
mensaje
FIN
ESTRUCTURAS LÓGICAS DE DECISION
JAVA
package domApli;
import biblioteca.Lectura;
class PrgAreaCuadrado2 {
public static void main (String [] args ) {
String mensaje= “ “;
int lado, area;
System.out.print (“Ingrese el lado: “);
lado = Lectura.leerInt();
area = lado * lado;
//Estructura de Decisión
if (area<100) {
mensaje = “Este cuadrado es pequeño”;
}
System.out.print (mensaje);
}
}
“C”
#include <iostream>
#include <string>
using std::cout ;
using std::cin ;
using std::string;
int main ( ) {
string mensaje=“ “;
int lado, area;
cout <<“Ingrese el lado: “;
cin >> lado;
area = lado * lado;
//Estructura de Decisión
if (area<100) {
mensaje = “Este cuadrado es pequeño”;
}
cout <<mensaje;
return 0;
}
ESTRUCTURAS LÓGICAS DE DECISION
Problema 2: Calcular la nota final (nf) de un alumno, sabiendo que tiene sólo dos notas. Si
el alumno obtiene una nota final mayor a 13 se deberá visualizar un mensaje de
felicitaciones
INICIO
Algoritmo NotaFinal
ENTRADA: nota1, nota2
SALIDA: nf, mensaje=“ “
INICIO
ENTERO nota1, nota2
REAL nf
TEXTO mensaje
LEER nota1, nota2
nf = (nota1 + nota2) / 2
SI ( nf > 13 )
ENTONCES
mensaje = “Felicitaciones”
FINSI
FIN
ESCRIBIR mensaje
ENTERO nota1, nota2 REAL nf
TEXTO mensaje= “ “
nota1, nota2
nf = (nota1 + nota2) / 2
nota > 13
mensaje = “Felicitaciones”
mensaje
FIN
ESTRUCTURAS LÓGICAS DE DECISION
JAVA
Package domApli;
import biblioteca.Lectura;
class PrgNotaFinal {
public static void main (String [] args) {
#include <iostream>
#include <string>
using std::cout ;
using std::cin ;
using std::string;
int main ( ) {
String mensaje=“ ”;
int nota1, nota2, nf;
string mensaje=“ ”;
System.out.print (“Ingrese la nota1: “);
cout <<“Ingrese la nota1: “;
System.out.print (“Ingrese la nota2: “);
cout <<“Ingrese la nota2: “;
nota1 = Lectura.leerInt();
int nota1, nota2, nf;
cin >> nota1;
nota2 = Lectura.leerInt();
cin >> nota2;
nf = (nota1 + nota2) / 2;
nf = (nota1 + nota2) / 2;
//Estructura de Decisión Simple
if (nf > 13){
Mensaje = “Felicitaciones”;
}
//Estructura de Decisión Simple
if (nf > 13){
mensaje = “Felicitaciones”;
}
System.out.print (“Su promedio es: “ +
nf + mensaje);
}}
cout <<“Su promedio es: “ + nf +
mensaje);
return 0;
}
ESTRUCTURAS LÓGICAS DE DECISION
INTENTALO…!!!
1.- Calcular y mostrar el sueldo de un trabajador conociendo el número de horas
trabajadas y su tarifa horaria, sabiendo que se debe descontar un 10% del
sueldo por concepto de impuestos si éste es mayor de S/. 3000.
2.- Ingresar un numero y mostrar un mensaje si el numero es múltiplo de 3.
3.- Ingresar dos números y mostrar un mensaje si ambos son iguales.
Introducción a la Computación
ESTRUCTURAS DE DECISION
SI – SINO - FIN SI
SEMANA 09
ESTRUCTURAS LÓGICAS DE DECISION
Estructura Lógica de Decisión Doble (SI/SINO)
Definición:
Una estructura de decisión doble “SI... SINO... FINSI” permite alterar el flujo
secuencial (o pasos secuenciales) de una solución, ejecutando un conjunto de pasos
dependiendo del resultado de una condición lógica. Si la condición resulta verdadera,
se ejecuta un conjunto de pasos, y si la condición resulta falsa, se ejecuta otro
conjunto de pasos. En ningún caso se podrá ejecutar ambos conjuntos de pasos a la
vez.
PSEUDOCODIGO
EXPLICACIÓN:
SI (condición)
ENTONCES
instrucciones...
SINO
instrucciones...
FINSI
Si la condición resulta verdadera, se ejecutan las
instrucciones que se encuentran entre las reglas
ENTONCES y SINO.
Si la condición resulta falsa se ejecutan las
instrucciones que se encuentran entre las reglas
SINO y FINSI.
Sólo se ejecuta uno de los grupos de instrucción,
en ningún caso se podrá ejecutar ambos grupos.
ESTRUCTURAS LÓGICAS DE DECISION
Estructura Lógica de Decisión Doble (SI/SINO)
ESTRUCTURAS LÓGICA DE DECISION
Estructura Lógica de Decisión Doble (SI/SINO)
JAVA y C
if (condición) {
sentencias...
}
else {
sentencias...
}
EXPLICACIÓN:
Si la condición resulta verdadera, se ejecutan las
sentencias que se encuentran entre las llaves { }
ubicadas después de la palabra reservada if.
Si la condición resulta falsa, se ejecutan las
sentencias que se encuentran entre las llaves { }
ubicadas después de la palabra reservada else.
ESTRUCTURAS LÓGICAS DE DECISION
Problema 1: Calcular y mostrar la nota final de un alumno. Si la nota final (nf) es menor a 14
se deberá mostrar el mensaje “Desaprobado”, caso contrario se mostrará el mensaje
“Aprobado”. Fórmula: nf = (n1+n2+n3) / 3.
Algoritmo NotaFinal2
INICIO
ENTRADA: nota1, nota2, nota3
SALIDA: nf, mensaje
INICIO
ENTERO nota1, nota2,nota3
REAL nf
TEXTO mensaje
LEER nota1, nota2, nota3
nf = (nota1 + nota2 + nota3 ) / 3
SI ( nf < 14 )
ENTONCES
mensaje = “Desaprobado”
SINO
mensaje = “Aprobado”
FINSI
ESCRIBIR nf, mensaje
FIN
ENTERO nota1, nota2,nota3
REAL nf
TEXTO mensaje
nota1, nota2,nota3
nf = (nota1 + nota2 + nota3) / 3
V
nota < 14
F
mensaje=“Aprobado”
mensaje=“Desaprobado”
mensaje
FIN
ESTRUCTURAS LÓGICAS DE DECISION
import biblioteca.Lectura;
class PrgNotaFinal2 {
public static void main (String[] args ) {
String mensaje;
int nota1, nota2, nota3
double nf ;
System.out.print (“Ingrese la nota1: “);
nota1 = Lectura.leerInt();
System.out.print (“Ingrese la nota2: “);
nota2 = Lectura.leerInt();
System.out.print (“Ingrese la nota3: “);
nota3 = Lectura.leerInt();
nf = (nota1+nota2+nota3) / 3;
if (nf <14) {
mensaje = “Desaprobado”;
} else {
mensaje = “Aprobado”;
}
}
}
System.out.print (“su nota final es: “ +
nf + “, usted está “ + mensaje);
#include <iostream>
#include <string>
using std::cout ;
using std::cin ;
using std::string;
int main ( ) {
string mensaje;
int nota1, nota2, nota3;
double nf;
cout <<“Ingrese la nota1: “>>;
cin >> nota1;
cout << “Ingrese la nota2: “>>;
cin >> nota2;
cout <<Ingrese la nota3: “>>;
cin >> nota3;
nf = (nota1+nota2+nota3) / 3;
if (nf <14) {
mensaje = “Desaprobado”;
} else {
mensaje = “Aprobado”;
}
cout <<“su nota final es: “ + nf + “, usted
está “ + mensaje;
return 0;
}
ESTRUCTURAS LÓGICAS DE DESICION
Problema 2: Ingrese un número y determine si el número ingresado es un número par
o un número impar.
Algoritmo NumPar
INICIO
ENTRADA: num
SALIDA: mensaje
INICIO
ENTERO num
TEXTO mensaje
LEER num
SI ( num RESTO 2 = 0 )
ENTONCES
mensaje = “Es un numero par”
SINO
mensaje = “Es un numero impar”
FINSI
ESCRIBIR mensaje
ENTERO num
TEXTO mensaje
LEER num
F
V
num RESTO 2 = 0
mensaje=“Numero par”
mensaje=“Numero impar”
mensaje
FIN
FIN
ESTRUCTURAS LÓGICAS DE DECISION
“C”
JAVA
Import bibioteca.Lectura;
class PrgNumPar {
public static void main (String[] args ) {
String mensaje;
int numero;
System.out.print (“Ingrese un numero: “);
numero = Lectura.leerInt();
string mensaje;
int numero;
if (numero % 2 == 0) {
mensaje = “Numero par”;
} else {
mensaje = “Numero impar”;
}
cout <<“Ingrese un numero: “;
cin >> numero;
System.out.print (“Usted ingreso el
numero: “ + numero + “ ,es un ” +
mensaje”);
}
#include <iostream>
#include <string>
using std::cout ;
using std::cin ;
using std::string;
int main ( ) {
}
if (numero % 2 == 0) {
Mensaje = “Es un numero par”;
} else {
Mensaje = “Es un numero impar”;
}
cout <<“Usted ingreso el numero: “
+ numero + “ ,es un ” + mensaje;
return 0;
}
ESTRUCTURAS LÓGICAS DE DECISION
INTENTALO…!!!
1.- Calcular y mostrar el monto total a pagar por la compra de un artículo si se tiene
que agregar el IGV. En caso que el monto total a pagar incluido IGV sea mayor a
S/.500 nuevos soles se aplica un descuento de 8%, caso contrario el descuento
será de 2%.
2.- Ingresar la edad de una persona y mostrar un mensaje expresando si es o no
mayor de edad.
3.- Ingresar un numero y mostrar un mensaje si es par o impar.
Introducción a la Computación
ESTRUCTURAS DE DECISION MULTIPLES
SI ANIDADOS
SEMANA 10
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Estructura Lógica de Decisión Múltiple (SI Anidados)
Definición:
Una estructura de decisión múltiple “SI Anidados” permite alterar el flujo
secuencial de una solución ejecutando un conjunto de pasos que dependen del
resultado de evaluar diferentes condiciones lógicas dentro de estructuras de decisión
simple o doble.
PSEUDOCODIGO
FORMATO EN
PSEUDOCODIGO
SI (condición1) ENTONCES
instrucciones1…
SINO
SI (condición2) ENTONCES
instrucciones2…
SINO
SI (condición3) ENTONCES
instrucciones3…
FINSI
FINSI
FINSI
EXPLICACIÓN:
En el pseudocódigo mostrado, se
puede apreciar un ejemplo de una
estructura múltiple “SI Anidados”.
Observe como se combinan
estructuras de decisión simple y
estructuras de decisión doble.
Tenga presente que para formar
una estructura múltiple “SI
Anidados” puede utilizar
cualquier combinación de
estructuras de decisión simple y
doble.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Estructura Lógica de Decisión Múltiple (SI Anidados)
FORMATO EN
JAVA
JAVA
if (condición1) {
sentencias1...
} else {
if (condición2) {
sentencias2...
} else {
if (condición3) {
sentencias3…
}
}
}
OBSERVACIÓN:
El presente código desarrollado
en Java es la traducción del
pseudocódigo de la diapositiva
anterior.
El profesor desarrollará en clase
otras formas de utilizar las
estructuras de decisión múltiple
“SI Anidados”.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 1: Calcular el área de un rectángulo conociendo su
base y altura. Si el área es menor que 100, se deberá
visualizar el mensaje “rectángulo pequeño”; si el área es
mayor o igual a 100 y menor que 1000, se visualizará el
mensaje “rectángulo mediano”; y si el área es mayor o igual
que 1000, el mensaje será “rectángulo grande”.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
ENTRADA:
base, altura
SALIDA:
area, mensaje
INICIO
NUMERO base, altura, area
TEXTO mensaje
LEER base, altura
area = base * altura
SI (area < 100)
ENTONCES
mensaje = “ rectángulo pequeño ”
SINO
SI (area >= 1000)
ENTONCES
mensaje = “ rectángulo grande ”
SINO
mensaje = “ rectángulo mediano ”
FINSI
FINSI
ESCRIBIR area, mensaje
FIN
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 2: Leer el sueldo de un trabajador y calcule
su aumento por incremento del costo de vida de
acuerdo a la siguiente tabla:
Tipo
Monto
Sueldo < 2000
20%
2000 < =Sueldo < =3000
13%
Sueldo > 3000
9%
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
ENTRADA: sueldo
SALIDA:
nuevoSueldo
INICIO
NUMERO sueldo, nuevoSueldo
LEER sueldo
SI (sueldo < 2000)
ENTONCES
nuevoSueldo = sueldo * 1.2
SINO
SI (sueldo > 3000)
ENTONCES
nuevoSueldo = sueldo * 1.09
SINO
nuevosueldo = sueldo * 1.13
FINSI
FINSI
ESCRIBIR nuevoSueldo
FIN
ESTRUCTURAS LÓGICAS DE DECISION MUTIPLE
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 3: Determinar si un número es divisor de
otro número; Utilice la expresión
(num1 RESTO num2 > 0)
donde “num1” y “num2” son los dos números.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
ENTRADA: num1, num2
SALIDA: mensaje
INICIO
NUMERO num1, num2
TEXTO mensaje
LEER num1, num2
SI (num1 > = num2)
ENTONCES
SI (num1 RESTO num2 = 0)
ENTONCES
mensaje = “El segundo número es divisor del primer número”
SINO
mensaje = “El segundo número no es divisor del primer número”
FINSI
SINO
SI (num1 RESTO num2 = 0)
ENTONCES
mensaje = “El primer número es divisor del segundo número”
SINO
mensaje = “El primer número no es divisor del segundo número”
FINSI
FINSI
ESCRIBIR mensaje
FIN
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 4: Ingresar tres notas de un alumno.
Muestre las notas ordenadas en forma ascendente.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 5: Diseñe una solución en Pseudocódigo y Diagrama de flujo que permita ingresar y
convertir una cantidad en metros a sus equivalentes en centímetros, pulgadas, pies y yardas.
Considere la siguiente información:
1 metro = 100 cm.
1 pulgada = 2.54 cm.
1 pie = 12 pulgadas.
1 yarda = 3 pies.
Problema 6: Elabore una solución en C++ que ingrese un número entero e indique las siguientes
descripciones sobre el número ingresado:
-Si es positivo o negativo.
-Si es par o impar.
-Si es múltiplo de 3 o no.
-Si es menor que 500 o no.
(
Problema 7: Elabore una solución en Java Calcular y mostrar el costo total que representa un
paciente para un hospital de acuerdo al tipo de enfermedad, según los datos de la tabla.
Adicionalmente, debe considerar que los pacientes de sexo femenino menores de 12 años
implican un costo adicional de 13%.
Enfermedad Tipo
Costo diario por
paciente
1
122
2
234
3
345
4
587
Introducción a la Computación
ESTRUCTURAS DE DECISION MULTIPLE
CUANDO
SEMANA 11
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
ESTRUCTURA LÓGICA DE DECISIÓN MÚLTIPLE
(CUANDO)
Definición:
Una estructura de decisión múltiple “CUANDO... FINCUANDO” permite alterar el
flujo secuencial de una solución ejecutando un conjunto de pasos dependiendo del
valor de una variable. Generalmente, para cada posible valor que pueda tener la
variable se define un conjunto de pasos a ejecutar. También se define un conjunto de
pasos a ejecutar en caso que uno de los valores de la variable no tenga asociado un
conjunto de pasos a ejecutar.
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Estructura Lógica de Decisión Múltiple (CUANDO)
PSEUDOCODIGO
EXPLICACIÓN:
CUANDO (variable) SEA
CASO (valor 1) :
instrucciones...
TERMINAR
CASO (valor n) :
instrucciones...
TERMINAR
OTROS
instrucciones...
FINCUANDO
Si el valor de la variable es igual a uno de los
valores colocados después de una de las
reglas CASO, se ejecutan las instrucciones
que están dentro del mismo.
Si el valor de la variable no es igual a ninguno
de los valores colocados después de una de
las reglas CASO, se ejecutan las instrucciones
que están dentro de la regla OTROS. La regla
OTROS es opcional (es decir, puede aparecer
como no).
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Estructura Lógica de Decisión Múltiple (CUANDO)
CASO (VALOR 1)
V
Instrucciones
TERMINAR
Instrucciones
TERMINAR
Instrucciones
TERMINAR
Instrucciones
TERMINAR
F
CASO (VALOR 2)
V
F
CASO (VALOR 3)
V
F
CASO (VALOR “n”)
F
Instrucciones POR DEFECTO
V
ESTRUCTURAS LÓGICAS DE DECISIÓN MULTIPLE
Estructura Lógica de Decisión Múltiple (CUANDO)
JAVA y C
EXPLICACIÓN:
switch (variable) {
case valor 1 :
sentencias...
break
case valor 2 :
sentencias...
break
case valor n :
sentencias...
break
default :
sentencias...
}
Si el valor de la variable es igual a uno de los
valores colocados después de la palabra
reservada case (valor 1, valor 2, etc), se
ejecutan las sentencias que están dentro del
mismo hasta llegar al final (es decir hasta la
llave) a no ser que encuentre una palabra
reservada break entre las sentencias que se
ejecutan.
Si el valor de la variable no es igual a ninguno de
los valores colocados después de una de las
palabras reservadas case, se ejecutan las
sentencias que están dentro de la palabra
reservada default. La palabra reservada default
es opcional (es decir puede aparecer como no).
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Problema 1: Ingresar la categoría (categoria) y el sueldo (sueldo) de un trabajador, y
calcular su aumento de sueldo teniendo en cuenta la siguiente mostrada. Mostrar el nuevo
sueldo del trabajador (sueldo).
Categoría
Aumento
1
38 %
2
21 %
3
12 %
4
08 %
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
Algoritmo PrgSueldo – main()
ENTRADA: categoria, sueldo
SALIDA: sueldo
INICIO
ENTERO categoria
REAL sueldo
LEER categoria, sueldo
CUANDO (categoria) SEA
CASO (categoria = 1)
sueldo = sueldo * 1.38
TERMINAR
CASO (categoria = 2)
sueldo = sueldo * 1.21
TERMINAR
CASO (categoria = 3)
sueldo = sueldo * 1.12
TERMINAR
CASO (categoria = 4)
sueldo = sueldo * 1.08
TERMINAR
OTROS
Sueldo = sueldo
FIN CUANDO
ESCRIIBIR sueldo
FIN
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
INICIO
NUMERO categoria REAL sueldo
categoria, sueldo
Categoria=1
Sueldo = sueldo * 1.38
Categoria=2
Sueldo = sueldo * 1.21
Categoria=3
Sueldo = sueldo * 1.12
Categoria=4
Sueldo = sueldo * 1.08
Sueldo = sueldo
sueldo
FIN
ESTRUCTURAS LÓGICAS DE DECISION MUTIPLE
class PrgSueldo {
public static void main (String[] arg) {
int categoria;
double sueldo=0;
System.out.print (“Ingrese la categoria”);
categoria = Lectura.leerInt();
System.out.print (“Ingrese el sueldo”);
sueldo = Lectura.leerInt();
}
#include <iostream>
using std::cout ;
using std::cin ;
int main ( ) {
int categoria
doublesueldo;
cout <<“Ingrese la categoria”;
cin >> categoria
cout <<“Ingrese el sueldo”;
cin >> sueldo;
switch (categoria) {
case 1: sueldo = sueldo * 1.38;
break;
case 2: sueldo = sueldo * 1.21;
break;
case 3: sueldo = sueldo * 1.12;
break;
case 4: sueldo = sueldo * 1.08;
break;
default: sueldo = sueldo
}
System.out.print (Su sueldo es: “ + sueldo);
}
}
switch (categoria) {
case 1: sueldo = sueldo * 1.38;
break;
case 2: sueldo = sueldo * 1.21;
break;
case 3: sueldo = sueldo * 1.12;
break;
case 4: sueldo = sueldo * 1.08;
break;
default: sueldo = sueldo
}
cout << “Su sueldo es: “ + sueldo>>;
return 0;
ESTRUCTURAS LÓGICAS DE DECISION MULTIPLE
INTENTALO…!!!
1.-
2.-
En una dulcería se venden 4 tipos de sándwich, de acuerdo a la siguiente tabla:
Desarrolle una solución que permita calcular el monto a pagar por La compra de cada
sándwich.
Categoría
Aumento
A
4.5
B
5.0
C
7.5
D
13.5
Desarrollar una solución que permita realizar operaciones de suma, resta o
multiplicación. Se deberá ingresar dos números y el tipo de operación que se desea
realizar
símbolo
operación
+
Suma
-
Resta
*
Multiplicación
/
División
Introducción a la Computación
ESTRUCTURAS DE CONTROL
MIENTRAS
SEMANA 12
ESTRUCTURAS DE DATOS
Variables
Uso de contadores
Definición:
Un contador es una variable entera que toma un valor inicial y cuyo valor se
incrementa o decrementa en una cantidad fija cada vez que se ejecutan los
pasos que forman parte de una estructura de repetición. Un contador puede
ser creciente o decreciente.
contador = contador + cantidadConstante
En Pseudocódigo
Ejemplos:
En Java y C
- Incremento de 1 en 1

c=c+1
C++
- Incremento de 2 en 2

contar = contar + 2
contar += 2 ;
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Estructura Lógica de Repetición (MIENTRAS)
Definición:
Una estructura lógica de repetición “MIENTRAS… FINMIENTRAS”, permite repetir
una instrucción o un bloque de instrucciones mientras que una condición se cumpla o
sea verdadera. Esta estructura de repetición prueba la condición antes de ejecutar la
instrucción o instrucción.
PSEUDOCODIGO
MIENTRAS (condición)
instrucción 1
.
.
.
instrucción n
FINMIENTRAS
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Estructura Lógica de Repetición (MIENTRAS)
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Estructura Lógica de Repetición (MIENTRAS)
JAVA y C
while (condición) {
sentencia 1
.
.
.
sentencia n
}
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 1: Calcular la nota final de todos los
alumnos del curso utilizando la siguiente fórmula:
nf = ( n1 + (n2 *2 ) ) / 3
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 1: Calcular la nota final de todos los alumnos del curso utilizando la siguiente
fórmula: nf = ( n1 + (n2 *2 ) ) / 3
Algoritmo Nfinales
ENTRADA: numalu, n1, n2
SALIDA: nf
INICIO
ENTERO numalu, n1, n2, cont=1
REAL nf
LEER numalu
MIENTRAS (cont <= numalu) HACER
LEER n1, n2
nf = ( n1 + (n2 *2 ) ) / 3
ESCRIIBIR nf
cont = con +1
FINMIENTRAS
FIN
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 2: Calcular la suma de 5 números
ingresados por teclado.
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 3: hacer un programa que muestre los
10 primeros números enteros positivos.
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 4: hacer un programa que muestre los
10 primeros números impares.
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 5: hacer un programa que muestre el
cuadrado de los 10 primeros números pares.
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 6: hacer un programa que muestre la
suma de los cuadrados de los 10 primeros
números impares.
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 5: Calcular la suma de una lista de N
números enteros ingresados por el usuario.
Introducción a la Computación
ESTRUCTURAS DE CONTROL
HACER - MIENTRAS
SEMANA 13
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Estructura Lógica de Repetición (HACER-MIENTRAS)
Definición:
Una estructura lógica de repetición “HACER... MIENTRAS”, permite repetir una
instrucción o un bloque de instrucciones mientras que una condición se cumpla o sea
verdadera. Esta estructura de repetición permite que se ejecuten al menos una vez las
instrucciones o instrucción antes de probar la condición.
Esta estructura es utilizada para el desarrollo de menú y para la consistencia de los
datos.
PSEUDOCODIGO
HACER
instrucción 1
.
.
.
instrucción n
MIENTRAS (condición)
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Estructura Lógica de Repetición (HACER - MIENTRAS)
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Estructura Lógica de Repetición (HACER - MIENTRAS)
JAVA y C
do {
sentencia 1
.
.
.
sentencia n
} while (condición) ;
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 1: Calcular la nota final de los
alumnos del curso, siempre que se desee
continuar.
Utilizar la siguiente fórmula:
nf = (n1 + n2) / 2
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 1: Calcular la nota final de los alumnos del curso, siempre que se desee continuar.
Utilizar la siguiente fórmula: nf = (n1 + n2) / 2
Algoritmo Nota
ENTRADA: n1, n2
SALIDA: nf
INICIO
ENTERO n1, n2
REAL nf
HACER
LEER n1, n2
nf = ( n1 + (n2 *2 ) ) / 3
ESCRIBIR nf
LEER continua
MIENTRAS (continua = ‘S’ O continua=‘s’)
FIN
ESTRUCTURAS LÓGICAS DE CONTROL – REPETICION
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
# include<iostream>
using std::cout;
using std::cin;
int main(){
int n1=0,n2=0;
double nf=0;
char continua=' ';
do {
cout << "Ingrese la nota1:\t";
cin >> n1;
cout << "Ingrese la nota2:\t";
cin >> n2;
nf = (double)( n1 + n2 ) / 2;
cout << "Nota final =\t\t" + nf+"\n";
cout << "Si desea continuar ingresar (S) " +
"\ncaso contrario Ingresar cualquier otro caracter:\t";
continua=Lectura.leerChar();
} while (continua == 'S' || continua == 's');
cout << "***Gracias por usar el programa***";
}
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
INTENTALO…!!!
[1] Se desea desarrollar un programa que permita
calcular la nota final de cada uno de los 70 alumnos que
pertenecen a un salón de clase, utilizando la siguiente
formula:
NF= (EP + PP + EF)/3
Ingresar las notas de los alumnos a través del teclado,
luego mostrar los resultados para cada alumno.
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
INTENTALO…!!!
[2] desarrollar un programa donde se pueda leer 100
números desde el teclado y tener como resultado, cuantos
de estos números son múltiplos de 3, cuantos son
múltiplos de 5 y el promedio de los 100 números
ingresados.
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Introducción a la Computación
ESTRUCTURAS DE CONTROL
DESDE ó PARA
SEMANA 14
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Estructura Lógica de Repetición (DESDE O PARA)
Una estructura de repetición “DESDE...
FINDESDE” permite repetir una instrucción, o un
bloque de instrucciones, un número determinado de
veces o hasta que una condición se cumpla. Una
estructura lógica de repetición “DESDE...
FINDESDE” con frecuencia se utiliza para
iteraciones sencillas en donde se repite un bloque
de instrucciones un cierto número de veces y
después se detiene.
INICIO
Declaración Variables
e inicialización
incremento
PSEUDOCODIGO
PARA (cont=1, cont <= 5, cont++) HACER
instrucción 1
.
.
.
instrucción n
FINPARA
Condición
F
FIN
Acción
v
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 1: Desarrollar un algoritmo que sume 5 montos
ingresados y al terminar lo muestre por pantalla.
Algoritmo - pseudocodigo
INICIO
REAL monto, suma
INT cont
PARA (cont=1, cont <= 5, cont=cont+1) HACER
LEER monto
suma  suma + monto
FIN PARA
ESCRIBIR suma
FIN
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 1: Desarrollar un algoritmo que sume 5 montos
ingresados y al terminar lo muestre por pantalla.
Diagrama de Flujo
INICIO
X
cont=cont+1
suma = suma + monto
REAL monto, suma
INT cont1
cont<=5
suma
X
FIN
v
monto
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 1: Desarrollar un algoritmo que sume 5 montos
ingresados y al terminar lo muestre por pantalla.
Codificación en Java
package domApli;
import biblioteca.*;
public class sumamonto {
public static void main (String[ ] args) {
real monto, suma;
int cont;
for(cont=1; cont <=5; cont++) {
System.out.println(“ingrese monto: ”);
monto = Lectura.leerReal( );
suma = suma + monto;
}
System.out.println(“la suma es: ” +suma);
}
}
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 2: Calcular y mostrar la nota final de 10 alumnos
utilizando la siguiente fórmula:nf = (n1+n2))/2. Ingrese las
notas a través del teclado.
Algoritmo Nfinales3
ENTRADA: n1, n2
SALIDA: nf
INICIO
ENTERO i
REAL nf, n1, n2
PARA (i=1 , i =10, cont=cont+1) HACER
LEER n1, n2
nf = ( n1 + n2 ) / 2
ESCRIBIR nf
FIN PARA
FIN
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 2: Calcular y mostrar la nota final de 10 alumnos
utilizando la siguiente fórmula:nf = (n1+n2))/2. Ingrese las
notas a través del teclado.
JAVA
package domApli;
import biblioteca.Lectura;
class PrgAPrgNfinales3 {
public static void main (String[] args) {
int i;
double n1=0,n2=0,nf=0;
for (i=1; i<=10; i++) {
System.out.print(“Ingrese la nota1: ”);
n1 = Lectura.leerInt();
System.out.print(“Ingrese la nota2: ”);
n2 = Lectura.leerInt();
nf = ( n1 + n2 ) / 2;
System.out.println(“Nota final = “+nf);
}
}
}
“C”
#include <iostream>
using std::cout;
using std::cin;
int main ( ) {
int i;
double n1=0,n2=0,nf=0;
for (i=1; i<=10; i++) {
cout <<“Ingrese la nota1”;
cin >> n1;
cout <<“Ingrese la nota2”;
cin >> n2;
nf = ( n1 + n2 ) / 2;
cout << “Nota final =“+nf;
}
Return 0;
}
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 3: Determinar cuáles son los términos de una
progresión aritmética. Solicite el valor del primer término, el
valor de la razón y el número de términos.
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
“C++”
JAVA
package domApli ;
import biblioteca.Lectura;
class PrgAPrgProgresión {
public static void main (String[] args ) {
int i, primero, razon, numTerminos,termino;
int main ( ) {
int i, primero, razon, numTerminos,termino;
System.out.print ( “Ingrese el primer término
de progresión aritmética: ” );
primero = Lectura.leerInt();
cout << “Ingrese el primer término de
progresión aritmética: ” ;
cin >>primero;
System.out.print ( “Ingrese la razón de la
progresión aritmética: ” );
razon = Lectura.leerInt();
cout << “Ingrese la razón de la progresión
aritmética: ” ;
cin >> razon;
System.out.print ( “Ingrese el número de
términos: ” );
numTerminos = Lectura.leerInt();
cout << “Ingrese el número de términos de
la progresión: ” ;
cin >> numTerminos
for ( i=1 ; i <= numTerminos ; i++) {
termino = primero;
System.out.print ( término + “ ” ) ;
primero = primero + razon ;
}
}}
#include <iostream>
using std::cout;
using std::cin;
for ( i=1 ; i <= numTerminos ; i++) {
termino = primero;
cout << término + “ ” ;
primero = primero + razon ;
}
Return 0;
}
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 4: Calcular y visualizar la suma de los números
pares comprendidos entre los números 20 y 400.
Algoritmo SumaPares
ENTRADA:
SALIDA: sumaPares
INICIO
ENTERO num, sumaPares = 0
PARA (num =22, num<398, num= num+1) HACER
SI (num RESTO 2 = 0 )
ENTONCES
sumaPares = sumaPares + num
FINSI
FINDESDE
ESCRIBIR sumaPares
FIN
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 4: Calcular y visualizar la suma de los números
pares comprendidos entre los números 20 y 400.
JAVA
package dominioDeLaAplicacion ;
class PrgSumaPares {
public static void main (String[] arg) {
int num, sumaPares = 0 ;
for ( num=22 ; num<399 ; num++) {
if ( num % 2 == 0) {
sumaPares = sumaPares + num;
}
}
System.out.println (“La suma de los numeros pares
entre 20 y 400 es: ”+ sumaPares);
}
}
ESTRUCTURAS DE DATOS
Definición:
Variables
Uso de interruptores
Un interruptor o conmutador (denominado también centinela,
bandera o flag) es una variable lógica o numérica que puede tomar
dos posibles valores (1/0, verdadero/falso, si/no,
encendido/apagado) dentro de una determinada solución
Ejemplo:
En Pseudocódigo En Java
sw = FALSO
sw = false ;
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto)
Problema 5: Desarrolle una solución que permita determinar si
un numero es o no primo. Emplee interruptores.
El conjunto de los números primos es un subconjunto de los
números naturales que engloba a todos los elementos de este
conjunto que son divisibles exactamente tan sólo por sí
mismos y por la unidad (por convención, el 1 no se considera
primo). Los veinte primeros números primos son:
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67 y 71
Nótese el hecho de que todos los números naturales son
divisibles por sí mismos y por la unidad.
MÉTODO 6’D – SOLUCIONES CON DOS PAQUETES (sin objeto)
Problema 5: Desarrolle una solución que permita determinar si
un numero es o no primo. Emplee interruptores.
INICIO
LOGICO sw = VERDADERO
NUMERO i, num
LEER num
DESDE i = 2 HASTA i = num - 1
SI ( num RESTO i = 0 ) ENTONCES
sw = FALSO
FINSI
FINDESDE
SI ( sw )
ENTONCES
ESCRIBIR “Número primo”
SINO
ESCRIBIR “Número no es primo”
FINSI
FIN
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
JAVA
package domApli ;
class PrgSumaPares {
public static void main (String [ ] args) {
boolean sw = true;
int i, num;
System.out.print("Ingrese el numero a evaluar :");
num=Lectura.leerInt();
for (i=2;i<num;i++){
if (num % i == 0 ) {
sw = false;
}
}
if (sw){
System.out.print("El numero es primo");
}else{
System.out.print("El numero no es primo");
}
}
}
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 6:
package domApli;
public class PrgFiguraCuadrado {
public static void main(String[] args) {
int i, j ;
for (i = 1; i <= 5; i++) {
for (j = 1; j <= 5; j++) {
System.out.print("*");
}
System.out.println();
}
}}
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 7:
package domApli;
public class PrgFiguraCuadrado {
public static void main(String[] args) {
int i, j ;
for (i = 1; i <= 5; i++) {
for (j = 1; j <= i; j++) {
System.out.print( “ * “ );
}
System.out.println();
}
}}
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Problema 8:
package domApli;
public class PrgFiguraCuadrado {
public static void main(String[] args) {
int i, j ;
for (i = 1; i <= 5; i++) {
for (j = 1; j <= i; j++) {
System.out.print( i );
}
System.out.println();
}
}}
ESTRUCTURAS LÓGICAS DE CONTROL - REPETICION
Desarrollar la codificación de las soluciones que permitan mostrar las siguientes figuras:
Problema 9
Problema 10
Problema 11
Introducción a la Computación
ESTRUCTURAS DE DECISION / CONTROL
COMBINACIONES
SEMANA 15
ESTRUCTURAS LÓGICAS
Desarrollar la solución del menú que se presenta a continuación:
ESTRUCTURAS LÓGICAS
INICIO
ENTERO a,b,opc
HACER
HACER
LEER opc
MIENTRAS (a<1 o a>6)
CUANDO opc SEA
CASO (opc=1)
LEER a,b
TERMINAR
CASO (opc=2)
ESCRIBIR a+b
TERMINAR
CASO (opc=3)
ESCRIBIR a-b
TERMINAR
CASO (opc=4)
ESCRIBIR a*b
TERMINAR
CASO (opc=5)
ESCRIBIR a/b
TERMINAR
FINCUANDO
MIENTRAS (opc!=6)
FIN
ESTRUCTURAS LÓGICAS
Introducción a la Computación
ESTRUCTURAS DE DATOS TIPO ARREGLO
VECTORES
SEMANA 16
Introducción a la Computación
Objetivos :
• Describir la estructura de datos tipo arreglo. Uso de
vectores y matrices.
• Desarrollo de soluciones con uso de vectores
ESTRUCTURAS DE DATOS : ARREGLOS
ARREGLOS
Definición:
Los arreglos son estructuras de datos que consisten en
elementos del mismo tipo. Los arreglos son entidades estáticas
en cuanto a que su tamaño no cambia una vez que han sido
creadas.
Se debe tener en cuenta que antes de usar los elementos de un
arreglo, se debe declarar, crear e inicializar el arreglo.
ESTRUCTURAS DE DATOS : ARREGLOS
ARREGLOS
Tipos:
• Arreglos unidimensionales o vectores
Representación:
números
0
1
32
-2
2
3
0
174
tamaño=4
• Arreglos bidimensionales o matrices
Representación:
números
0
1
2
3
0
32
-2
0
174
1
14
12
-5
129
filas=2, columnas=4
ARREGLOS TIPO VECTOR
DECLARACIÓN:
En Pseudocódigo
tipoDato nombreVector [ ]
En Java
tipoDato nombreVector [ ] ;
tipoDato [ ] nombreVector ;
Ejemplos;
Ejemplos;
- TEXTO nombres [ ]
- String nombres [ ] ;
- NUMERO sueldos [ ]
- double sueldos [ ] ;
- CARACTER letras [ ]
- char letras [ ] ;
ARREGLOS TIPO VECTOR
CREACIÓN:
En Pseudocódigo
En Java
CREAR nombreVector [tamaño]
nombreVector = new tipoDato [tamaño] ;
Ejemplos;
Ejemplos;
- CREAR nombres [10 ]
- nombres = new String [10] ;
- CREAR sueldos [numNot]
- sueldos = new double [numNot] ;
- CREAR letras [LONGITUD texto]
- letras = new char [texto.length()] ;
ARREGLOS TIPO VECTOR
INGRESO DE DATOS:
En Pseudocódigo
En Java
nombreVector [índice] = valor
identificador [índice] = valor ;
Ejemplos;
Ejemplos;
- nombres [0 ] = “Danae”
- nombres [0 ] = “Danae” ;
- sueldos [1] = 100.5
- sueldos [1] = 100.5 ;
- letras [x] = ‘J’
- letras [x] = ‘J’ ;
Cuando utilizamos vectores podemos utilizar las estructuras lógicas de repetición para optimizar de manera
significativa el proceso de ingreso de datos especialmente utilizando la estructura DESDE ó PARA.
ARREGLOS TIPO VECTOR
TAMAÑO:
En Pseudocódigo
En Java
variable = LONGITUD nombreVector [ ]
variable = nombreVector.length ;
Ejemplos;
Ejemplos;
- tamaño = LONGITUD nombres [ ]
- tamaño = nombres.length ;
- tamaño = LONGITUD sueldos [ ]
- tamaño = sueldos.length ;
- tamaño = LONGITUD letras [ ]
- tamaño = letras.length ;
ARREGLOS TIPO VECTOR
DECLARACIÓN Y CREACIÓN:
En Java
tipoDato nombreVector [ ] = new tipoDato [tamaño] ;
DECLARACIÓN, CREACIÓN E INICIALIZACIÓN:
En Java
tipoDato nombreVector [ ] = { valor1, valor2, valor3, valor4, … , valorN } ;
ARREGLOS TIPO VECTOR
Ejercicio 1
Desarrollar una solución que permita ingresar y almacenar las
notas de todas las prácticas de un alumno. Determinar el
promedio de las prácticas sabiendo que se elimina la práctica
con la nota mas baja.
Utilice vectores.
Algoritmo
VectorNotas
ENTRADA: numPra, notas[ ]
/ SALIDA:
promAlu
INICIO
ENTERO i, numPra
REAL sumaNotas = 0, notaMenor = 20
REAL notas[ ], promAlu
COMENTARIO “Creación del arreglo”
CREAR notas [numPra]
COMENTARIO “Ingreso de datos al arreglo notas[ ].”
PARA (i=0, i<numpra, i=i+1) HACER
LEER notas[i]
FINPARA
COMENTARIO “Cálculo del promedio de notas de las prácticas”
PARA (i=0, i<numpra, i=i+1) HACER
sumaNotas = sumaNotas + notas[i]
FINPARA
PARA (i=0, i<numpra, i=i+1) HACER
SI ( notaMenor > notas[i] ) ENTONCES
notaMenor = notas[i]
FINSI
FINPARA
promAlu = ( sumaNotas - notaMenor ) / ( numPra - 1 )
ESCRIBIR promAlu
ARREGLOS TIPO VECTOR
Ejercicio 2
Desarrollar una solución que permita ingresar y almacenar el sueldo (sueldos[]) de
todos los trabajadores de una empresa. Calcular y mostrar el sueldo neto
(sueldoNeto) de cada trabajador, sabiendo que se tienen que descontar el 12% por
impuestos y el 3% por seguro. Consistenciar el ingreso de datos.
Ejercicio 3
Desarrollar una solución que permita ingresar y almacenar la nota (notas[]) de 10
alumnos de un salón de clase y determinar el promedio final del aula (prom).
Mostrar el promedio. Consistenciar el ingreso de datos.
.Ejercicio 4
Desarrollar una solución que permita ingresar y almacenar la nota (notas[]) de
todos los alumnos de un salón de clase y determinar el promedio final (prom)
redondeado a dos decimales. Mostrar el promedio. Consistenciar el ingreso de
datos.
Emplee vectores
Introducción a la Computación
ESTRUCTURAS DE DATOS TIPO ARREGLO
MATRICES
SEMANA 16
ESTRUCTURAS DE DATOS
Arreglos
Tipos:
• Arreglos unidimensionales o vectores
Representación:
números
0
1
32
-2
2
3
0
174
tamaño=4
• Arreglos bidimensionales o MATRICES
Representación:
números
0
1
2
3
0
32
-2
0
174
1
14
12
-5
129
filas=2, columnas=4
ESTRUCTURAS DE DATOS
Arreglos tipo MATRIZ
Declaración:
En Pseudocódigo
En Java
tipoDato identificador [ ][ ]
tipoDato identificador [ ][ ] ;
ó
tipoDato [ ][ ] identificador ;
Ejemplos;
Ejemplos;
- TEXTO nombres [ ][ ]
- String nombres [ ][ ] ;
- NUMERO sueldos [ ][ ]
- double sueldos [ ][ ] ;
- CARACTER letras [ ][ ]
- char letras [ ][ ] ;
ESTRUCTURAS DE DATOS
Arreglos tipo MATRIZ
Creación:
En Pseudocódigo
En Java
CREAR identificador [filas][columnas] identificador = new tipoDato [filas][columnas] ;
Ejemplos;
Ejemplos;
- CREAR nombres [2][4]
- nombres = new String [2][10] ;
- CREAR sueldos [numAlu][numNot]
- sueldos = new double [numAlu][numNot] ;
- CREAR letras [4][total]
- letras = new char [4][total] ;
ESTRUCTURAS DE DATOS
Arreglos tipo MATRIZ
Declaración y Creación:
En Java
tipoDato identificador[][] = new tipoDato [filas][columnas] ;
Ejemplos;
- String nombres = new String [2][10] ;
- double sueldos = new double [numAlu][numNot] ;
- char letras = new char [4][total] ;
ESTRUCTURAS DE DATOS
Arreglos tipo MATRIZ
Ingreso de datos:
En Pseudocódigo
En Java
identificador [índice] = valor
identificador [índice] = valor ;
Ejemplos;
Ejemplos;
- nombres [0][0] = “Danae”
- nombres [0][0] = “Danae” ;
- sueldos [1][x] = 100.5
- sueldos [1][x] = 100.5 ;
- letras [y][x] = ‘J’
- letras [y][x] = ‘J’ ;
Cuando utilizamos matrices podemos utilizar las estructuras lógicas de repetición para
optimizar de manera significativa el proceso de ingreso de datos especialmente
utilizando la estructura DESDE ó PARA dos veces.
ESTRUCTURAS DE DATOS
Ejercicio
Desarrollar una solución que permita ingresar y
almacenar números enteros positivos en una matriz
de 3 por 3 (a[][]) y permita mostrar la matriz 3 por 3 y
la suma de los números ubicados en la diagonal
principal. Consistencia la entrada de datos.
Utilice matrices.
ENTRADA: numero[ ][ ]
INICIO
/
SALIDA: numero[ ][ ], sumaDiaPri
COMENTARIO “Declaración del arreglo”
ENTERO i, j, numero[][], sumaDiaPri
COMENTARIO “Creación del arreglo”
Algoritmo
VectorNotas
CREAR numero[3][3],
COMENTARIO “Ingreso de datos al arreglo numero[ ] [ ].”
PARA (i=0, i<3, i=i+1) HACER
PARA (j=0, j<3, j=j+1) HACER
HACER
LEER numero[i][j]
MIENTRAS (numero[i][j]<0)
FINPARA
FINPARA
// DESDE i =0 HASTA i < 3
// DESDE j =0 HASTA j < 3
// FIN DESDE
// FIN DESDE
COMENTARIO “Mostrar Matriz y Cálculo de Suma”
PARA (i=0, i<3, i=i+1) HACER
// DESDE i =0 HASTA i < 3
PARA (j=0, j<3, j=j+1) HACER
// DESDE j =0 HASTA j < 3
ESCRIBIR numero[i][j]
SI (i=j) ENTONCES
sumaDiaPri = sumaDiaPri + numero[i][j]
FINSI
FINPARA
// FIN DESDE
FINPARA
// FIN DESDE
ESCRIBIR sumaDiaPri
FIN
ESTRUCTURAS DE DATOS
INTENTALO…!!!
1.- Desarrollar una solución que permita ingresar y almacenar el
precio de compra y el precio de venta de todos los artículos de una
bodega (precio[][]). Calcular y mostrar la utilidad que se obtiene por
la venta de cada artículo. Utilice matrices.
2.-Desarrollar una solución que permita ingresar y almacenar el
código y el nombre de los empleados de una compañía
(empleado[][]). Luego mostrar el código y nombre de los empleados
de la compañía. Utilice matrices.
3.-Desarrollar una solución que permita ingresar y almacenar el
promedio de prácticas, la nota del examen parcial y la nota del
examen final de todos los alumnos de MBIII de la FIA (nota[][]).
Calcular y mostrar el promedio que obtuvo cada alumno;
Adicionalmente indicar el porcentaje de alumnos que aprobaron el
curso.