Vous êtes sur la page 1sur 18

Introduccin a la Programacin

Pgina 1 de 18

I.S.C. Carlos Ernesto Arjona Marrufo

Objetivo de la asignatura:
El alumno podr plantear de manera sistemtica la solucin de problemas susceptibles de ser computarizados
mediante tcnicas estructuradas de diseo y formulacin de algoritmos.
La asignatura ser la herramienta inicial requerida por el alumno para aprender las estructuras bsicas de
control de instrucciones, que le permitan desarrollar soluciones lgicas a problemas susceptibles de ser
computarizados.
Unidades
1. Conceptos bsicos y reglas para el desarrollo de algoritmos
2. Tcnicas de diseo y formulacin de algoritmos
3. Estructuras algortmicas
4. Arreglos
5. Introduccin a C++
Bibliografa (el presente material es un resumen)
 "Programacin en C++" Luis Joyanes Aguilar - Mc Graw Hill - 2000
 Aprenda C++ como si estuviera en primero Referencia electrnica
 Tutorial de Algoritmos del Instituto Tecnolgico de la Paz (http://www.itlp.edu.mx/publica/tutors.htm)
 Cualquier texto que trate el diseo estructurado de algoritmos e introduccin a la programacin
Criterios de evaluacin
Examen escrito = 70%
Proyectos = 30%
Reglas del juego (a nivel universitario)
 Programacin es una materia que requiere prctica y que se le dedique tiempo. No se recomienda hacer
copias ilegales de los trabajos del compaero y repasar 30 minutos antes del examen.
 Se requiere puntualidad. Habr una tolerancia de 10 minutos para el pase de lista. No se manejan
retrasos.
 Es necesaria completa responsabilidad y comportamiento en el trabajo. Esto implica puntualidad en la
entrega de trabajos, calidad ptima en los entregables y conducta adecuada. Persona que sea expulsada
del saln pierde sus 30 puntos de proyectos del parcial automticamente.
 Mi trabajo consiste en ensear, el del estudiante de estudiar y preguntar sus dudas. Reservarse las dudas
del tema, se considerar como tema entendido y comprendido al 100%.
 Persona que se sorprenda con la intencin de intercambiar informacin durante el examen, se le anular.
 Slo habr un da de revisin de examen donde al trmino la calificacin ser definitiva.
 Cualquier situacin que concierna a la asignatura y la clase se discutir conmigo. Hablando se entiende la
gente.
BIENVENIDO AL CURSO

Introduccin a la Programacin
Pgina 2 de 18

INTRODUCCIN
LOS LENGUAJES DE PROGRAMACIN
Software son todos los componentes intangibles de una
computadora, es decir, el conjunto de programas y
procedimientos necesarios para hacer posible la realizacin de
una tarea especfica, en contraposicin a los componentes fsicos
del sistema (hardware).
Las herramientas para desarrollar software (desde sistemas
operativos (Windows, Unux, Linux, BSD, ) hasta aplicaciones
particulares) reciben el nombre de lenguajes de programacin, y
stos estn compuestos por conjuntos de palabras que se
eslabonan unas con otras de acuerdo a ciertas reglas de sintaxis,
y que unidas correctamente, instruyen a la computadora (u otro
dispositivo) sobre qu debe hacer en determinadas
circunstancias.
La diversidad de los lenguajes de programacin es amplia, pero
de acuerdo con el enfoque seguido al crear software, es posible
dividirlos en tos tipos: los estructurados y los orientados a objetos.
Para desarrollar software, primero se escribe un documento de
texto siguiendo las reglas del lenguaje de programacin. El
archivo que contiene ese documento de texto se denomina
archivo fuente. Despus es preciso compilar los archivos fuente, o
sea, traducirlos al lenguaje de mquina. Una vez terminada la
compilacin, se crean archivos ejecutables, que son los que la
computadora corre cuando se le indica.
Lenguaje Mquina
Son aqullos que estn escritos en lenguajes directamente
inteligibles por la mquina (computadora), ya que sus
instrucciones son cadenas binarias que especifican una operacin
y las posiciones (direccin) de memoria implicadas en la
operacin. Las instrucciones en lenguaje mquina dependen del
hardware de la computadora y, por tanto, diferirn de una
computadora a otra.
Ventajas
Posibilidad de cargar (transferir un programa a la memoria)
sin necesidad de traduccin posterior, lo que supone una
velocidad de ejecucin superior a cualquier otro lenguaje de
programacin.
Desventajas
Dificultad y lentitud en la codificacin.
Poca fiabilidad.
Gran dificultad para verificar y poner a punto los programas.
Los programas solo son ejecutables en el mismo procesador
(CPU). Esto afecta directamente a la transportabilidad del
software.

Lenguajes de Bajo Nivel


Son ms fciles de utilizar que los lenguajes mquina, pero al
igual que ellos, dependen de la mquina en particular. El lenguaje

I.S.C. Carlos Ernesto Arjona Marrufo

de bajo nivel por excelencia es el ensamblador. Las instrucciones


en lenguaje ensamblador son instrucciones conocidas como
nemotcnicos. Un programa escrito en lenguaje ensamblador,
requiere de una fase de traduccin al lenguaje mquina para
poder ser ejecutado directamente por la computadora.
Ventajas
Mayor facilidad de codificacin y, en general, su velocidad de
clculo.
Desventajas
Dependencia total de la mquina lo que impide la
transportabilidad.
La formacin de los programadores es ms compleja ya que
exige no solo las tcnicas de programacin, sino tambin el
conocimiento del interior de la mquina.

Lenguajes de Alto Nivel


Estos lenguajes son los ms utilizados por los programadores.
Estn diseados para que las personas escriban y entiendan los
programas de un modo mucho ms fcil que los lenguajes
mquina y ensambladores. Un programa escrito en lenguaje de
alto nivel es independiente de la mquina, por lo que estos
programas son portables o transportables. Los programas escritos
en lenguaje de alto nivel pueden ser ejecutados con poca o
ninguna modificacin en diferentes tipos de computadoras.
Ventajas
El tiempo de formacin de los programadores es
relativamente corto comparado con otros lenguajes.
La escritura de programas se basa en reglas sintcticas
similares a los lenguajes humanos.
Las modificaciones y puestas a punto de los programas son
ms fciles.
Reduccin del coste de los programas.
Transportabilidad.
Desventajas
Incremento del tiempo de puesta a punto al necesitarse
diferentes traducciones del programa fuente para conseguir
el programa definitivo.
No se aprovechan los recursos internos de la mquina que
se explotan mucho mejor en lenguajes mquina y
ensambladores.
Aumento de la ocupacin de memoria.
El tiempo de ejecucin de los programas es mayor.

GENERACIONES DE LENGUAJES DE PROGRAMACIN


Primera generacin: Las primeras computadoras se
programaban directamente en cdigo binario, que puede
representarse mediante secuencias de ceros y unos sistema
binario. Cada modelo de ordenador tiene su propio cdigo, por
esa razn se llama lenguaje de mquina.

Introduccin a la Programacin
Pgina 3 de 18

Segunda generacin: Los lenguajes simblicos, asimismo


propios de la mquina, simplifican la escritura de las instrucciones
y las hacen ms legibles. El lenguaje simblico busca que cada
instruccin de la mquina se transforme en una nica instruccin
en cdigo simblico. Esto mejora considerablemente la legibilidad
del programa, aunque sigue requiriendo un conocimiento profundo
de la CPU y de los registros de trabajo de los que dispone, la
estructura de la memoria, y otros aspectos tcnicos.
Tercera generacin: Los lenguajes de alto nivel sustituyen las
instrucciones simblicas por cdigos independientes de la
mquina, parecidas al lenguaje humano. Para traducir las
declaraciones simblicas caractersticas de un lenguaje de alto
nivel al lenguaje mquina a fin de que la computadora las ejecute
es indispensable un compilador, que es quien realiza tal
traduccin.
Cuarta generacin: se ha dado este nombre a ciertas
herramientas que permiten construir aplicaciones sencillas
combinando piezas prefabricadas. Hoy se piensa que estas
herramientas no son, propiamente hablando, lenguajes. Algunos
proponen reservar el nombre de cuarta generacin para la
programacin orientada a objetos. Los lenguajes de muy alto nivel
o 4GL, buscan reducir tanto el esfuerzo de la programacin, como
el tiempo y los costos de creacin de software.
Quinta generacin: se llama as a veces a los lenguajes de la
inteligencia artificial. Bajo esta categora se encuentran los
lenguajes naturales, por su acercamiento a la lengua escrita. El
uso de un lenguaje natural con una base de conocimientos
produce un sistema basado en el conocimiento (como los
sistemas expertos)

CICLO DE VIDA DEL DESARROLLO DE SOFTWARE


Cuando una persona o empresa va a desarrollar software hay al
menos 2 etapas previas a la codificacin, es decir, 2 etapas
anteriores a escribir instrucciones de cdigo en un lenguaje de
programacin especfico:
1. El anlisis. Es determinar todos los recursos necesarios,
humanos y materiales para poder encarar la tarea.
2. El planteamiento lgico. Implica la descripcin de los pasos
que han de seguirse para que el software maneje del modo
ms eficaz el problema, para que posteriormente se escriba
un pseudocdigo o algoritmo de los pasos. Esta labor es de
gran importancia, pues EL MEJOR SOFTWARE ES EL QUE
ABORDA LOS MEJORES ALGORITMOS.
En general, las fases del ciclo de desarrollo de software son las
siguientes:
Definicin del problema
Est dada en s por el enunciado del problema, el cual debe ser
claro. Es importante que conozcamos exactamente "que se desea
obtener al final del proceso; mientras esto no se comprenda no
puede pasarse a la siguiente etapa.

I.S.C. Carlos Ernesto Arjona Marrufo

Anlisis de los datos


Para poder definir con precisin el problema se requiere que las
especificaciones de entrada y salida sean descritas con detalle ya
que esto es un requisito para lograr una solucin eficaz. Una vez
que el problema ha sido definido y comprendido, deben analizarse
los resultados esperados y los datos de entrada disponibles.
Diseo de la solucin
Una computadora no tiene capacidad para solucionar problemas
ms que cuando se le proporcionan los sucesivos pasos a
realizar, esto se refiere a la obtencin de un algoritmo que
resuelva adecuadamente el problema. Esta etapa incluye la
descripcin del algoritmo resultante en un lenguaje natural, de
diagrama de flujo o natural de programacin.
Codificacin
Se refiere a la obtencin de un programa definitivo que pueda ser
comprensible para la mquina. Incluye una etapa que se reconoce
como compilacin. Si la codificacin original se realiz en papel,
previo a la compilacin deber existir un paso conocido como
transcripcin a un lenguaje de programacin.
Prueba y depuracin
Una vez que se ha obtenido el programa ejecutable, este es
sometido a prueba a fin de determinar si resuelve o no el
problema planteado en forma satisfactoria. Las pruebas que se le
aplican son de diversa ndole y generalmente dependen del tipo
de problema que se est resolviendo. Comnmente se inicia la
prueba de un programa introduciendo datos vlidos, invlidos e
incongruentes y observando como reacciona en cada ocasin.
El proceso de depuracin consiste en localizar los errores y
corregirlos en caso de que estos existan. Si no existen errores,
puede entenderse la depuracin como una etapa de refinamiento
en la que se ajustan detalles para optimizar el desempeo del
programa.
Los algoritmos ptimos sern aquellos que menos problemas
presenten.
Documentacin
Debido a que el programa resultante en esta etapa se encuentra
totalmente depurado (sin errores), se procede a la documentacin
de todos los aspectos importantes para poder obtener el producto.
Es decir, se documenta todas las etapas anteriores para poder ser
utilizado como gua en un desarrollo de software posterior.
En proyectos de desarrollo de software grandes y de alta
complejidad, esta etapa se realiza en paralelo a las anteriores.
Mantenimiento
Se refiere a las actualizaciones que deban aplicarse al programa
cuando las circunstancias as lo requieran. Este programa deber
ser susceptible de ser modificado para adecuarlo a nuevas
condiciones de operacin. Cualquier actualizacin o cambio en el
programa deber reflejarse en su documentacin.

Introduccin a la Programacin
Pgina 4 de 18

DISEO ESTRUCTURADO DE
ALGORITMOS
CONCEPTOS BSICOS

Almacenamiento: Cualquier dispositivo o medio capaz de


recibir informacin y retenerla durante un periodo de tiempo,
permitiendo su recuperacin.
Archivo: Coleccin organizada de registros.
Bit: Contraccin de dgito binario (BInary digiT). Uno de los 2
dgitos Cero o Uno que se emplean en la notacin binaria.
Byte: Conjunto de 8 dgitos binarios que se consideran como
una unidad.
Carcter: Uno de los componentes de un conjunto de
smbolos de un sistema de proceso de datos. Cada carcter
se representa por un cdigo de bits exclusivo.
Compatibilidad: Caracterstica de poder procesarse 2
actividades indistintamente sin la necesidad de realizar
cambios.
Identificador: Es el carcter o grupo de caracteres que se
emplean para nombrar una posicin determinada en
memoria, un archivo o un dato. Siempre debe empezar con
letra. Ejemplo: casa, p34, a23b, iden_prueba.
Inicializar: Proceso que se realiza al principio de un algoritmo
o programa para asegurarse que todos los identificadores y
constantes se ajustan a las condiciones y valores requeridos
para el inicio.
Memoria: Se refiere al almacenamiento interno de una
computadora. En un sentido estricto se refiere a las
posiciones de almacenamiento en memoria interna o
principal donde se almacena la informacin y permanece
mientras el equipo est funcionando y no a cualquier medio
de almacenamiento auxiliar o memoria secundaria.
Procedimiento: Designa cualquier operacin que la
computadora efecta con los datos.
Sentencia: Instruccin en lenguaje fuente.

ALGORITMOS
"Un algoritmo se define como un mtodo que se realiza paso a
paso para solucionar un problema que termina en un nmero finito
de pasos". Las caractersticas fundamentales que debe cumplir
todo algoritmo son:
1. Debe ser preciso. Indicando el orden de realizacin de cada
paso.
2. Debe ser definido. Si se sigue un algoritmo dos veces, se
debe obtener el mismo resultado cada vez.
3. Debe ser finito. Si se sigue un algoritmo, se debe terminar en
algn momento; o sea debe tener un nmero finito de pasos.
Por ejemplo: determinar el mayor de 2 nmeros
Inicio
Obtener el primer nmero (entrada), denominado NUM1
Obtener el segundo nmero (entrada), denominado NUM2
Si NUM1 > NUM2 entonces
MAYOR=NUM1

I.S.C. Carlos Ernesto Arjona Marrufo

En caso contario
MAYOR=NUM2
Fin
Algo que le da versatilidad a la programacin es que puede haber
varios algoritmos para resolver el mismo problema. La diferencia
reside en que unos son ms ptimos que otros, ya sea porque
son ms rpidos, consumen menos recursos etc.
Por ejemplo, qu hacer si se desea obtener el rea de un
tringulo?
SOLUCION 1: Aplicar (b x h) / 2
SOLUCION 2: Obtener el rea bajo la curva por medio de una
integral definida
Si el problema es resuelto satisfactoriamente no hay solucin
mala, sino menos ptima.

TIPOS DE DATOS
Un dato se define como la expresin general que describe los
objetos con los cuales opera una computadora. Los datos de
entrada se transforman por el programa, despus de las etapas
intermedias, en datos de salida.
Datos de
entrada

Procesamiento

Informacin
de entrada

Los datos se clasifican en diversas categoras, segn el tipo de


mquina o del lenguaje en uso. Generalmente podemos encontrar
las siguientes categoras:
Datos Numricos
Son aqullos que representan una cantidad o valor determinado.
Su representacin se lleva a cabo en los formatos ya conocidos
(enteros, punto y fracciones decimales si estas existen). Estos
pueden representarse en dos formas:
Enteros. Son nmeros completos, no tienen componentes
fraccionarios o decimales y pueden ser negativos y positivos.
Reales. Estos nmeros siempre tienen un punto decimal y
pueden ser positivos o negativos.
Datos de Cadena
Son los datos que representan informacin textual (palabras,
frases, smbolos, etc). No representan valor alguno para efectos
numricos. Pueden distinguirse porque son delimitados por
comillas dobles. Por ejemplo Hola
Datos Tipo Carcter
Es un conjunto finito y ordenado de caracteres que la
computadora reconoce. Un dato de este tipo contiene solo un
carcter. Este carcter se delimita por apostrofes. Ejemplo: x
Datos Lgicos
Tambin se le denominan Boleanos. Es aqul dato que slo
puede tomar uno de dos valores: verdadero y falso. (true / false).

Introduccin a la Programacin
Pgina 5 de 18

CONSTANTES Y VARIABLES
Una Constante es aqulla que no cambia de valor durante la
ejecucin de un programa.
Las Variables son aqullas que pueden modificar su valor durante
la ejecucin de un programa. Su representacin se da a travs de
identificadores que se les asigna un valor.

OPERADORES
Operadores Aritmticos
Son aqullos que permiten la realizacin de clculos aritmticos.
Utilizan operandos numricos y proporcionan resultados
numricos.
+
*
/
Div
Mod
^

Suma
Resta
Multiplicacin
Divisin real
Divisin entera
Residuo o mdulo
Exponenciacin

Operadores Relacionales
Permiten realizar comparaciones de valores de tipo numrico o
carcter. Estos operadores sirven para expresar las condiciones
en los algoritmos. Proporcionan resultados lgicos (verdadero o
falso).
<
>
=
<=
>=
<>

Menor que
Mayor que
Igual que
Menor o igual que
Mayor o igual que
Diferente de

Operadores Lgicos
Son aqullos que permiten la combinacin de condiciones para
formar una sola expresin lgica. Utilizan operandos lgicos y
proporcionan resultados lgicos tambin.
Se utilizan para formar condicionales complejas como por
ejemplo: todos los nmeros z entre 1 y 10.
Forma 1:
z>=1 Y z<=10
Forma 2:
NO (z<1 O z>10)
not
and
or

Negacin (No)
Conjuncin (Y)
Disyuncin (O)

Se obtiene Verdadero si:


NOT
El operando es falso
AND
Ambos operandos son verdaderos
OR
Al menos un operando es verdadero

I.S.C. Carlos Ernesto Arjona Marrufo

Prioridad de Operadores
Determina el orden en que habrn de realizarse las operaciones
en una expresin determinada.
Las operaciones que estn encerradas entre parntesis se
evalan primero. Si existen diferentes parntesis anidados
(interiores unos a otros), las expresiones ms internas se evalan
primero.
En las operaciones aritmticas se sigue el siguiente orden de
prioridad: exponenciacin; multiplicaciones y divisiones; sumas y
restas. Si los operadores tienen la misma prioridad entonces se
evalan de izquierda a derecha.
As:
10 / 5 + 2 =
10 / (5 + 2) =

2+2
4
10 / 7
1.42

(los parntesis hacen la diferencia)

OTRAS OPERACIONES DE LOS ALGORITMOS


ASIGNACIN
La operacin de asignacin es el modo de darle valores a una
variable. La operacin de asignacin se representa por el smbolo
u operador =. La operacin de asignacin se conoce como
instruccin o sentencia de asignacin cuando se refiere a un
lenguaje de programacin.
ACUMULADOR
Se emplea para referirse a cualquier posicin de almacenamiento
en la que se generan resultados aritmticos. La idea esencial es
que un acumulador almacene un valor y al recibir un segundo
valor, genera y almacena la suma de esos valores. Debe ser
inicializado siempre en cero.
ACUMULADOR = 0

ACUMULADOR = ACUMULADOR + X
CONTADOR
Cualquier dispositivo que se utilice para acumular el nmero de
veces que se realiza un proceso. Es un tipo especial de
acumulador que se inicializa con cero y los valores que va
acumulando cada vez es la unidad.
CONT = 0

CONT = CONT + 1
MULTIPLICADOR
Identificador que se emplea para multiplicar otro y acumular el
producto generado. Debe ser inicializado con la unidad para evitar
la nulificacin del producto.
MULT = 1

MULT = MULT * X

Introduccin a la Programacin
Pgina 6 de 18

PSEUDOCDIGO Y
DIAGRAMAS DE FLUJO

I.S.C. Carlos Ernesto Arjona Marrufo

Inicio

PSEUDOCDIGO
Es una tcnica para expresar en lenguaje natural la lgica de un
programa mediante el empleo de palabras claves. Permite
obtener la solucin a un problema mediante aproximaciones
sucesivas pues es una herramienta para el diseo de programas y
no una notacin para la descripcin de los mismos. A
continuacin las instrucciones y la forma en que trabaja.

INICIO / TERMINAR Marcan el principio y el final de todo


algoritmo estructurado.
INICIALIZAR Se emplea con la finalidad de poder dar
valores iniciales a los contadores, sumadores, o
multiplicadores que se requieren en un proceso.
HACER Se emplea cada vez que se realiza una asignacin,
operacin aritmtica, sustitucin o cualquier proceso de
clculo que quiera realizarse en un algoritmo. Es opcional
para el manejo de la redaccin.
LEER Se emplea para realizar la lectura de los diversos
identificadores que se manejen en el algoritmo.
IMPRIMIR / ESCRIBIR Sirve para imprimir o escribir los
resultados o mensajes de un proceso que se haya realizado.
Cuando se manejen mensajes estos deben ir encerrados
entre comillas

DIAGRAMA DE FLUJO
Es la representacin grfica de la solucin de un problema, por
medio de smbolos estandarizados que se colocan en una
secuencia adecuada para indicar las fases lgicas de la solucin
de un problema.
El sentido de ejecucin es de arriba hacia abajo y de izquierda a
derecha. Sirve como un medio de comunicacin eficiente, como
herramienta de anlisis y una forma concisa de documentacin.
Entre sus ventajas estn:
1. Presentar un panorama total de la solucin del problema
2. Facilita la deteccin de posibles errores
3. Detecta si alguna alternativa no ha sido tomada en cuenta
para la solucin
4. Puede codificarse para cualquier lenguaje de programacin
5. Puede documentarse el problema con precisin
6. Representa grficamente el flujo de datos
Ejemplo: Redactar el pseudocdigo y hacer el diagrama de flujo
correspondiente para calcular el rea de un tringulo.
INICIO
LEER base
LEER altura
HACER area = (base * altura) / 2
IMPRIMIR El rea del triangulo es , area
TERMINAR

Smbolo de terminal
Representa inicio

base, altura

Smbolo de entrada de
datos

area = (base * altura) / 2

Smbolo de
procesamiento de datos

El rea del
triangulo es , area

Fin

Smbolo de impresin
Notar el Texto que se
imprime Vs las
variables

Smbolo de terminal
Representa final

Las flechas que indican el flujo de datos se llaman flechas


conectoras.

INSTRUCCIONES DE DECISIN
SI ENTONCES SINO FIN DE SI
Esta instruccin se emplea cada vez que es necesaria una
comparacin a la hora de tomar una decisin al realizar un
proceso. Cuando la condicin dada se cumple (se dice que es
VERDADERA) se ejecuta el proceso indicado despus del
ENTONCES. Cuando la condicin no se cumple (se dice que es
FALSA) se ejecuta el proceso indicado despus del SINO.
Independientemente que se cumpla o no la condicin, es decir,
que sea VERDADERA o FALSA, despus de cada proceso se
sale de la instruccin SI por un FIN DE SI. As tenemos:
SI condicin ENTONCES
Grupo de instrucciones que se realizan si la condicin se
cumple (es VERDADERA)
SINO
Grupo de instrucciones que se realizan si la condicin no se
cumple (es FALSA)
FIN DE SI
Ntese la identacin, es decir las sangras que se dejan para
poder diferenciar las instrucciones que le corresponden al
ENTONCES y a las que les corresponde al SINO.
Puede ser omitido el manejo del SINO cuando no se requiera
accin cuando la condicin sea FALSA. As tenemos:
SI condicin ENTONCES
Grupo de instrucciones que se realizan si la condicin se
cumple (es VERDADERA)
FIN DE SI
Al no existir el SINO, cuando la condicin sea FALSA se sale del
SI por medio del FIN DE SI sin haber hecho ninguna accin.

Introduccin a la Programacin
Pgina 7 de 18

I.S.C. Carlos Ernesto Arjona Marrufo

Ejemplo: Se proporcionan 2 valores cualesquiera, redactar el


pseudocdigo para efectuar el producto de ambos si el primer
valor es menor que el segundo; en caso contrario efectuar la
suma de ambos. Desplegar el resultado.
INICIO
LEER A, B
SI A<B ENTONCES
HACER PROD = A*B
IMPRIMIR El producto es , PROD
SINO
HACER SUMA = A+B
IMPRIMIR La suma es , SUMA
FIN DE SI
TERMINAR
Pueden manejarse instrucciones SI ENTONCES SINO FIN
DE SI anidadas. Esto quiere decir que dentro de la seccin del
ENTONCES o del SINO pueden haber mas instrucciones SI
ENTONCES SINO FIN DE SI.
Ejemplo: Se proporcionan 3 cantidades diferentes, redactar el
pseudocdigo para poner en orden decreciente dichas
cantidades. Imprimir las cantidades en el orden ledo y en la forma
solicitada.
INICIO
LEER C1, C2, C3
IMPRIMIR C1, C2, C3
SI C1>C2 ENTONCES
SI C2>C3 ENTONCES
IMPRIMIR C1,C2,C3
SINO
SI C1>C3 ENTONCES
IMPRIMIR C1,C3,C2
SINO
IMPRIMIR C3,C1,C2
FIN DE SI
FIN DE SI
SINO
SI C1>C3 ENTONCES
IMPRIMIR C2,C1,C3
SINO
SI C2>C3 ENTONCES
IMPRIMIR C2,C3,C1
SINO
IMPRIMIR C3,C2,C1
FIN DE SI
FIN DE SI
FIN DE SI
TERMINAR
A continuacin se muestra la grfica de la estructura condicional
simple.

Obviamente, en el caso de que se necesite realizar alguna accin


cuando la condicin sea FALSA, deber anexarse de manera
similar a la de VERDADERA.

SEGN HACER FIN DE SEGN


Esta instruccin es de seleccin mltiple de opciones que pueden
tenerse dentro de la solucin de un problema. El identificador
debe existir al principio del bloque de instrucciones a realizarse.
La salida es siempre por el FIN DE SEGN. La forma general es:
SEGN Identificador HACER
e1: Instrucciones a realizar cuando el valor de identificador
sea e1.
e2: Instrucciones a realizar cuando el valor de identificador
sea e2
e3, e4: Instrucciones a realizar cuando el valor de
identificador sea e3 o e4.
FIN DE SEGN
Con la instruccin SEGN se evita el empleo de instrucciones SI
anidadas.
Ejemplo: redactar el algoritmo para leer como dato de entrada un
nmero entre 1 y 5 correspondiente a un da de la semana y
obtener el nombre de ese da. Hacerlo con SI y con SEGN.
Forma 1 (utilizando SEGN)
INICIO
LEER D
SEGN D HACER
1: IMPRIMIR LUNES
2: IMPRIMIR MARTES
3: IMPRIMIR MIERCOLES
4: IMPRIMIR JUEVES
5: IMPRIMIR VIERNES
FIN DE SEGN
TERMINAR

Introduccin a la Programacin
Pgina 8 de 18

Forma 2 (utilizando SI)


INICIO
LEER D
SI D = 1 ENTONCES
IMPRIMIR LUNES
SINO
SI D = 2 ENTONCES
IMPRIMIR MARTES
SINO
SI D = 3 ENTONCES
IMPRIMIR MIERCOLES
SINO
SI D = 4 ENTONCES
IMPRIMIR JUEVES
SINO
IMPRIMIR VIERNES
FIN DE SI
FIN DE SI
FIN DE SI
FIN DE SI
TERMINAR
El smbolo utilizado para el SEGN en diagramas de flujo es el
siguiente:

INSTRUCCIONES DE REPETICIN
MIENTRAS HACER FIN DE MIENTRAS
En esta estructura, se revisa en primer lugar una condicin. Si
esta condicin es verdadera se pasa a realizar las acciones. Una
vez que se terminen con estas acciones se vuelve a evaluar la
condicin y se repite el proceso de manera sucesiva. En el
momento que la condicin sea falsa se sale de la instruccin. Si
en la primera vez la condicin es falsa las instrucciones no se
realizarn ni siquiera una vez.

I.S.C. Carlos Ernesto Arjona Marrufo

Ejemplo: Redactar el algoritmo para calcular el factorial de un


nmero entero que debe ser positivo.
INICIO
LEER N
MIENTRAS N < 0 HACER
LEER N
FIN DE MIENTRAS
FACT = 1
MIENTRAS N > 0 HACER
FACT = FACT * N
N=N-1
FIN DE MIENTRAS
IMPRIMIR El factorial es , FACT
TERMINAR

BANDERA Es un identificador que solamente puede tomar un


valor de falso o verdadero.
Ejemplo: Redactar el algoritmo para simular una calculadora que
pueda realizar sumas, restas, multiplicaciones divisiones y nos
devuelva el resultado al final de ellas, hasta que se proporcione el
signo de igual (=). Reportar tambin si se rest al menos una vez.
INICIO
LEER Dar un valor, V
RESULTADO = V
LEER OPERADOR
BAND = FALSE (damos por hecho que no se har ninguna
resta)
MIENTRAS OPERADOR <> = HACER
LEER Dar otro valor, V
SEGN OPERADOR HACER
+ : RESULTADO = RESULTADO + V
- : RESULTADO = RESULTADO V
BAND = TRUE
* : RESULTADO = RESULTADO * V
/ : SI V <> 0 ENTONCES
RESULTADO = RESULTADO + V
SINO
IMPRIMIR Error!
FIN DE SI
FIN DE SEGN
LEER OPERADOR
FIN DE MIENTRAS
IMPRIMIR El resultado es , RESULTADO
SI BAND ENTONCES
IMPRIMIR Al menos se rest una vez
SINO
IMPRIMIR No se rest
FIN DE SI
TERMINAR

Introduccin a la Programacin
Pgina 9 de 18

I.S.C. Carlos Ernesto Arjona Marrufo

HACER MIENTRAS
Esta instruccin es muy similar al MIENTRAS HACER FIN DE
MIENTRAS. De igual forma se tiene una condicin, pero ser
evaluada al final de las acciones, de manera que stas se realizan
al menos una vez. De forma anloga, si la condicin es verdadera
se repetirn las acciones. En el momento que la condicin resulte
falsa se sale del ciclo repetitivo.

Ejemplo: Leer un nmero positivo y sacar su raz cuadrada.


INICIO
HACER
LEER X
MIENTRAS X < 0
RAIZ = X ^ (1/2) (Por prioridad de exponenciacin se necesitan
parntesis)
TERMINAR

DESDE HASTA HACER FIN DE DESDE


Esta instruccin repetitiva es controlada por un contador
automtico. El contador puede moverse tanto hacia delante como
para atrs pero siempre de uno en uno. Su sintaxis es la
siguiente:

Ejemplo: Leer un nmero positivo y sacar su factorial.


INICIO
HACER
LEER X
MIENTRAS X < 0
FACT = 1
DESDE i = 1 TO X HACER
FACT = FACT * i
FIN DE DESDE
IMPRIMIR El factorial de , X , es , FACT
TERMINAR

Qu ciclo usar?
Aunque pueden utilizarse en la mayora de los casos un ciclo
MIENTRAS, HACER MIENTRAS o DESDE; en algunas
circunstancias son deseables algunos por sus caractersticas
propias.
Por ejemplo, supongamos que en un momento del programa se
debe leer una calificacin. Obviamente la calificacin no puede
ser un nmero diferente al rango 0-100. Por lo tanto se puede
forzar la repeticin hasta que se proporcione un dato correcto.
FORMA 1 (usando MIENTRAS)

DESDE Identificador = Valor_Inicial HASTA Valor_Final HACER


Grupo de instrucciones que se realizarn el nmero de veces
desde Valor_Inicial hasta Valor_Final
FIN DE DESDE

LEER calif
MIENTRAS calif < 0 calif >100 HACER
LEER calif
FIN DE MIENTRAS

No debe ser alterado ninguno de los componentes de la


instruccin. Pueden anidarse los DESDE de la siguiente forma:

FORMA 2 (usando HACER - MIENTRAS)

DESDE i = 1 HASTA M HACER


DESDE j = 1 HASTA N HACER
Grupo de instrucciones que se realizarn M x N veces
FIN DE DESDE
FIN DE DESDE
En un caso como en el anterior, puede verse que los ciclos
controlados por j se realizan M veces (controlado por i)

HACER
LEER calif
MIENTRAS calif < 0 calif >100 HACER

En este caso puede verse que el DESDE no es adecuado porque


no sabemos de antemano cuantas veces se va a dar de manera
incorrecta la calificacin.

Introduccin a la Programacin
Pgina 10 de 18

I.S.C. Carlos Ernesto Arjona Marrufo

ARREGLOS
Los arreglos tienen como caracterstica que con un nico
identificador se puede representar mltiples datos individuales,
donde cada uno de ellos puede ser referenciado de forma
separada. Pueden considerarse como conjuntos de elementos del
mismo tipo de dato en donde cada uno de esos elementos tiene
una posicin determinada. Dicha posicin la marca un ndice que
puede ser un identificador variable o constante con valor
numrico. La ventaja primordial es que los valores se almacenan
en memoria y pueden ser utilizados sin necesidad de leerlos
nuevamente.
El nombre de un arreglo se forma de la siguiente forma: se da un
identificador seguido de un identificador que representa un ndice
que debe ir encerrado entre corchetes. Este ndice nos indica la
posicin del elemento dentro del arreglo.
Hay varios tipos de arreglos:
Unidimensionales o vectores: son los que slo utilizan un
ndice
Bidimensionales, matrices o tablas: si tienen 2 ndices
Tridimensionales: si tienen 3 ndices.
Desde el momento en que se tengan ms de un ndice se llamar
arreglo multidimensional.
La sintaxis para la representacin de los elementos de un arreglo
es la siguiente:
Identificador_arreglo

ndice

,
El orden o rango de un arreglo es el nmero de elementos que lo
conforman. Los elementos del arreglo pueden ser utilizados como
si fueran variables ordinarias. En estos casos el elemento del
arreglo se expresa por el nombre del arreglo, seguido del valor del
ndice apropiado encerrado entre corchetes.
Condiciones de los ndices
Su valor debe ser un entero positivo
Puede ser una constante, una variable o una expresin
Pueden realizarse operaciones aritmticas, pero los
resultados de estas deben satisfacer a la primera condicin.
Pueden ser elementos de otro arreglo
Lectura de arreglos unidimensionales
Se recomienda ampliamente el uso de la iteracin que el DESDE
ofrece, para que de esta forma se lean consecutivamente los
elementos que lo conforman.
Por ejemplo: leer 5 valores y almacenarlos en un arreglo llamado
x.

DESDE i = 1 HASTA 5 HACER


LEER x[ i ]
FIN DE DESDE
Puede verse que la lectura se realiza elemento a elemento, es
decir, los valores no pueden proporcionarse todos a la vez.
Ejemplo: Con un arreglo unidimensional llamado x de orden N que
debe contener valores positivos, determinar el menor de todos los
elementos, calcular el producto de los elementos en posicin
impar y determinar cuantos son mayores que el promedio.
INICIO
HACER
LEER N
MIENTRAS N<0
DESDE i = 1 HASTA N HACER
HACER
LEER x[ i ]
MIENTRAS x[ i ]<0
FIN DE DESDE
INICIALIZAR:
prodImpar = 1, menor = x[1],
suma = 0, mayorProm = 0
DESDE i = 1 HASTA N HACER
Suma = suma + x[ i ]
SI i MOD 2 <> 0 ENTONCES
prodImpar = prodImpar * x[ i ]
FIN DE SI
SI menor > x[ i ] ENTONCES
menor = x[ i ]
FIN DE SI
FIN DE DESDE
Promedio = suma / N
DESDE i = 1 HASTA N HACER
SI Promedio < x[ i ] ENTONCES
mayorProm = mayorProm + 1
FIN DE SI
FIN DE DESDE
IMPRIMIR El menor de todos es , menor
IMPRIMIR La cantidad de valores que son mayores que el
promedio es , mayorProm
IMPRIMIR El producto de los elementos en posicin impar es ,
prodImpar
TERMINAR

MTODOS DE ORDENAMIENTO
Mtodos de la burbuja
El mtodo de la burbuja consiste en que el elemento con el cual
se inicie la ordenacin quede ubicado en la primera posicin del
arreglo y as sucesivamente se contina con los dems elementos
que conforman el arreglo en cuestin.
Se lleva a efecto N 1 veces la comparacin de los elementos del
arreglo consigo mismo, hasta que no se efecte intercambio
alguno de los valores.

Introduccin a la Programacin
Pgina 11 de 18

El pseudocdigo para ordenar en forma creciente u orden


ascendente un arreglo unidimensional de orden N es el siguiente:
DESDE i = 1 HASTA (N 1) HACER
DESDE j = (i + 1) HASTA N HACER
SI x[ i ] > x[ j ] ENTONCES
aux = x[ i ]
x[ i ] = x[ j ]
x[ j ] = aux
FIN DE SI
FIN DE DESDE
FIN DE DESDE
Con el pseudocdigo anterior se comparan los elementos de la
siguiente forma: el primero con los elementos restantes, despus
el segundo con los elementos restantes y as sucesivamente
hasta tener los valores del arreglo ordenado de forma creciente.
En caso de querer el ordenamiento en forma decreciente la
condicin a manejar debe ser x[ i ] < x[ j ]

Mtodos de intercambio
Tambin conocido como burbuja mejorada. Consiste en efectuar
N comparaciones de dos elementos con posicin subsiguiente
(primero con segundo, segundo con tercero), hasta el momento
en el cual no se lleve intercambio alguno de los valores del
arreglo. Para controlar el proceso se maneja una bandera, la cual
cambiar de valor cuando se haya realizado algn intercambio de
valores.
HACER MIENTRAS
Cambios = false
DESDE i = 1 HASTA (N 1) HACER
SI x[ i ] > x[i + 1] ENTONCES
aux = x[ i ]
x[ i ] = x[i + 1]
x[i + 1] = aux
Cambios = true
FIN DE SI
FIN DE DESDE
MIENTRAS Cambios

ARREGLOS MULTIDIMENSIONALES
Los arreglos multidimensionales permiten trabajar tablas de datos
compuestos de filas y columnas. Esto es, el primer ndice sirve
para referirse a la fila y el segundo a la columna donde se
encuentra el elemento en cuestin. Independientemente de cual
sea su dimensin, un arreglo siempre constar de una serie de
datos del mismo tipo.
Para las aplicaciones de los arreglos multidimensionales se
utilizan los bucles o ciclos anidados, esto es, que es necesario un
bucle para cada una de las dimensiones (uno para cada ndice).

I.S.C. Carlos Ernesto Arjona Marrufo

Lectura de arreglos bidimensionales


Pueden darse en dos formas: en orden de fila y por orden de
columna.
Orden de fila
DESDE i = 1 HASTA NumeroFilas HACER
DESDE j = 1 HASTA NumeroColumnas HACER
LEER x[i, j]
FIN DE DESDE
FIN DE DESDE

Orden de columna
DESDE j = 1 HASTA NumeroColumnas HACER
DESDE i = 1 HASTA NumeroFilas HACER
LEER x[i, j]
FIN DE DESDE
FIN DE DESDE
En ambos casos, puede observarse que el ciclo interno es ms
rpido que el externo.

CONCEPTOS MATRICIALES
Matriz: Arreglo formado por elementos que estn distribuidos en
filas y columnas. En cada elemento se tienen dos ndices, el
primero representa la fila y el segundo la columna que ocupa en el
arreglo.
Igualdad de matrices: Para que dos matrices sean iguales deben
tener el mismo orden y que cada uno de los elementos de una de
ellas sea igual al correspondiente de la otra.
Matriz cuadrada: Es aquel arreglo donde el nmero de filas es
igual al de columnas. Tiene dos diagonales:
Diagonal principal: la conforman aquellos elementos que tienen en
el ndice de la columna el mismo valor que el ndice de la fila.
Diagonal inversa: son los elementos cuya suma de los valores de
los ndices da por resultado el valor del orden ms uno.
Matriz identidad: Es aquella que en la diagonal principal tiene
elementos cuyo valor es la unidad y los restantes son ceros.
Matriz simtrica: Los elementos que estn debajo de la diagonal
principal son iguales a sus correspondientes que estn arriba de
la diagonal.
Es decir, se cumple que A[I, J] = A[J, I]
Matriz antisimtrica: Los elementos que estn debajo de la
diagonal principal son iguales a sus correspondientes que estn
arriba de la diagonal pero con signo cambiado.
Es decir, se cumple que A[I, J] = A[J, I]

Introduccin a la Programacin
Pgina 12 de 18

Suma de matrices: Es necesario que ambos arreglos tengan el


mismo orden para sumar los elementos correspondientes a la
misma posicin de los arreglos.
Es decir, SUMA[I, J] = A[I, J] + B[I, J]

I.S.C. Carlos Ernesto Arjona Marrufo

Gua de estudio del lenguaje de


programacin C++
ELEMENTOS BSICOS

Resta de matrices: Es necesario que ambos arreglos tengan el


mismo orden para restar los elementos correspondientes a la
misma posicin de los arreglos.
Es decir, RESTA[I, J] = A[I, J] - B[I, J]
Matriz triangular: Cuando se tiene una matriz cuadrada A, se
pueden tener 2 matrices triangulares: una superior y una inferior,
pero slo una a la vez.
Matriz triangular superior: Es aquella en la que los elementos que
se encuentran debajo de la diagonal principal son iguales a cero.
Es decir, A[I, J] = 0 para I > J
Matriz triangular inferior: Es aquella en la que los elementos que
se encuentran arriba de la diagonal principal son iguales a cero.
Es decir, A[I, J] = 0 para I < J
Producto de matrices: Es necesario que el nmero de columnas
de la primera matriz sea igual al nmero de filas de la segunda.
Un elemento PRODUCTO[I, J] se obtiene con la sumatoria de los
productos de los elementos que estn en la fila I con su
correspondiente en la columna J de la segunda matriz.
Algoritmo para el producto de una matriz "a" de tamao [m x n] y
otra matriz "b" de tamao [n x q], dando como resultado una
matriz "p" de tamao [m x q]
DESDE i = 1 HASTA m HACER
DESDE j = 1 HASTA q HACER
p[ i ][ j ] = 0
DESDE k = 1 HASTA n HACER
p[ i ][ j ] = p[ i ][ j ] + a[ i ][ k ] * b[ k ][ j ]
FIN DE DESDE
FIN DE DESDE
FIN DE DESDE

BUG
Es un error que posee el programa (usualmente detectado por
el usuario) que implica que el software requiere una
depuracin.
ERROR SINTCTICO
Error cometido cuando se escribe un cdigo que viola las
reglas de sintaxis del lenguaje de programacin. Son errores
sencillos de depurar pues los compiladores los detectan.
ERROR LGICO
Error cometido en la lgica del programa pero sin violar
ninguna regla de sintaxis. Son extremadamente complicados
de detectar, pues el compilador interpreta que todo se
encuentra correcto aunque el software arroje resultados
equivocados. Ejemplo de error lgico muy comn: no inicializar
con cero los contadores.
Cmo se programa en C++?
Una vez que se tiene la lgica del programa plasmada en un
algoritmo se deber escribir el cdigo en la sintaxis de C++ en un
archivo de texto plano. Esto significa que debe usarse un editor de
textos que NO establezca formato como el edit, notepad, o
similares.
Se debe evitar el uso de procesadores de texto que incluyan en
los archivos basura (para el proceso de codificacin) de formato.
Lo anterior significa usar Word o parecidos.
Una vez que tenemos el archivo fuente (archivo con extensin
CPP) con todo el cdigo en C++, ste no es ejecutable por el
sistema operativo (Windows, Linux, Unix, etc.). Deber
compilarse para obtener un archivo ejecutable (archivo con
extensin EXE).
El compilador, adems de traducir el cdigo fuente a cdigo
ejecutable se encargar de revisar el cdigo fuente en busca de
errores. Turbo C++ presentar 2 tipos de errores. Los errors son
errores de sintaxis que debern ser corregidos obligatoriamente
para generar el ejecutable. Los warnings son situaciones en los
que el ejecutable se ha generado pues no implica necesariamente
un error en el cdigo, pero deber ser revisado porque podra ser
el causante de algn problema posterior.
Una vez que se poseen 0 errors y 0 warnings se puede considerar
que el cdigo fuente est depurado al 100% en la sintaxis. Deber
probarse el cdigo para cerciorarse de que no se han cometido
errores lgicos.
C++ es un lenguaje de programacin muy estricto en cuanto a la
sintaxis. Por lo tanto esta debe ser estudiada de memoria.

Introduccin a la Programacin
Pgina 13 de 18

Esqueleto de un programa en C++


#include<Librera_de_biblioteca>
#define constante valor_de_la_constante
void main() {
Programa_principal
}

I.S.C. Carlos Ernesto Arjona Marrufo

//Bibliotecas
//Opcional

Las directivas del preprocesador comienzan con el smbolo # que


indica al compilador que lea las directivas antes de compilar el
programa principal. Estas directivas no sern de utilidad para
incluir libreras de biblioteca y constantes simblicas.
C++ posee muchas funcionalidades en paquetes listos para
utilizar directamente por el programador. Estos paquetes se
llaman funciones y lo nico que debe hacerse es especificar el
nombre de la funcin junto con alguna informacin (si lo requiere)
para que dicha funcin realice algo.
Sin embargo, para que podamos utilizar una funcin debe
indicarse al compilador su librera de biblioteca correspondiente.
Esto se realiza con #include.
La directiva #include indica al compilador que lea el archivo
fuente de cabecera que viene a continuacin de ella y su
contenido lo inserte en la posicin donde se encuentra dicha
directiva.
Por ejemplo #include<iostream.h> es la instruccin que se
encarga de indicar al compilador que debe ser aadida la librera
iostream.h en el programa.

es un error de sintaxis muy comn. El punto y coma indica al


compilador que la lnea de cdigo ha terminado. Por lo tanto
puede tenerse varias instrucciones de cdigo en una misma lnea
del archivo fuente separadas por punto y coma.

Comentarios
Hay dos tipos de comentarios: los de estilo C comienzan con la
secuencia /* y terminan con la secuencia */ y pueden ocupar una
o ms lneas. Los de estilo C++ siempre comienzan con // y se
considera comentario todos los caracteres que sigan hasta el final
de la lnea.
El objetivo de los comentarios es mencionar algn aspecto de
inters por parte del programador en el programa. Es importante
establecer la sintaxis de comentario de forma adecuada, pues de
lo contrario el compilador intentar compilar el texto que se est
escribiendo y como lo ms probable es que no coincida con la
rigurosa sintaxis de C++ se marcar error.

Identificadores
Un identificador es una secuencia de letras, dgitos y subrayados.
Las maysculas y minsculas se consideran diferentes. Los
identificadores sern utilizados para trabajar variables.
Es indispensable que las variables antes de ser utilizadas sean
declaradas especificando un tipo de dato y que su nombre no sea
una palabra reservada.

Las libreras son siempre archivos con extensin h. Por ejemplo,


una funcin de mucha utilidad es clrscr() que se encarga de
limpiar la pantalla. Para trabajar se requiere la librera conio.h

Una palabra reservada es aquella que pertenece al compilador y


est asociada a algn significado particular. No se podrn usar
como identificadores.

La directiva #define sirve para definir constantes simblicas. Por


ejemplo, al incluir la lnea #define PI 3.14159 se le indica al
compilador que cambie todos los PI que encuentre en el cdigo
fuente del programa por 3.14159.

Tipos de datos
C++ es un lenguaje fuertemente tipado. Esto significa que antes
de usar una variable deber ser declarada.

Las directivas #define no son obligatorias. Sin embargo en


algunos programas son de mucha utilidad pues evitan reescribir
cdigo.

ESCRITURA DEL PROGRAMA


Una vez que se ha especificado las libreras necesarias para la
ejecucin del programa, puede comenzarse a transcribir el
algoritmo de la solucin del problema en cuestin en cdigo
utilizando sintaxis de C++.
Este cdigo ir en la funcin main. Como puede verse, el main
requiere un par de parntesis vacos a la derecha de la palabra
main. Por otro lado, todo el programa que se incluya en el main
deber estar delimitado por un par de llaves {}. El olvidar cerrar
algn par en el transcurso del programa es un error sintctico que
deber ser corregido.
Salvo algunas muy pocas excepciones, toda lnea del programa
deber terminar con punto y coma (;). El olvidar el punto y coma

Enteros (no llevan parte decimal)


short
int
unsigned int
long
unsigned long
Coma flotante (si llevan parte decimal)
float
double
long double
Caracteres y cadenas
char
cadenas. En C++ no se posee el tipo de dato string. Por
lo tanto para manipular cadenas se requiere utilizar un
arreglo de caracteres.

Introduccin a la Programacin
Pgina 14 de 18

I.S.C. Carlos Ernesto Arjona Marrufo


char nombre[50];
float promedio;

Booleano o lgico
C++ no incluye el tipo de dato booleano como en otros lenguajes
de programacin. Puede simularse con el tipo de dato entero,
pues para C++ todo valor entero diferente de cero es considerado
como verdadero y el 0 es considerado como falso.

clrscr();
//se limpia la pantalla
cout<< Hola. Bienvenido al 1er programa;
cout<< \nTu nombre: ;
gets(nombre);
cout<< \nAo de nacimiento: ;
cin>> anioNac;
cout<< \nAo actual: ;
cin>> anioAhora;
cout<< \nPromedio anterior: ;
cin>> promedio;

Constantes carcter
Es un carcter encerrado entre comillas simples ( ).

Secuencias de escape
En realidad representan un solo carcter, aunque se escriban con
ms de uno. Las ms tiles son:
\n
nueva lnea
\t
tabulacin
\0
carcter nulo

Constante cadena
Es una secuencia de caracteres encerrados entre comillas dobles
( ). En memoria se representan por una serie de caracteres
ms un carcter nulo. El carcter nulo marca el final de la cadena
y se inserta automticamente por el compilador. Por lo tanto no es
lo mismo A que A. La primera es una constante de carcter A,
mientras que la segunda es una cadena que en realidad posee el
carcter A y el carcter nulo.

ENTRADA Y SALIDA ESTNDAR

//cadena usando arreglo


//dato real (con decimales)

edad= anioAhora anioNac;


clrscr();
cout<< Oye << nombre << !, calculo que";
cout<< \nTu edad es << edad;
cout<< \nUn promedio de << promedio << es ;
if(promedio > 6)
cout<< aprobatorio;
else
cout<< reprobatorio;
getch();
}

OPERADORES Y EXPRESIONES
El operador de asignacin = asigna el valor de la expresin
derecha a la variable situada a su izquierda, y puesto que este
operador es asociativo por la derecha se permite realizar
asignaciones mltiples como a=b=c=45;
Operadores de asignacin
Op.
=
*=
/=
%=
+=
-=

En C++ la entrada y salida se lee y escribe en flujos o streams.


Cuando la librera iostream.h se incluye en un programa, cin
puede ser utilizado para la entrada y cout para la salida.
La lectura de una variable se realiza con:
cin >> variable; // >> se llama operador de extraccin
Para visualizar datos en la pantalla del equipo:
cout << El valor de A es << A; // << es el operador insercin

Uso
a=b
a*=b
a/=b
a%=b
a+=b
a-=b

Equivale a
a=a*b
a=a/b
a=a%b
a=a+b
a=a-b

Operadores aritmticos
ESCRITURA DEL PRIMER PROGRAMA EN C++
No se debe olvidar que C++ considera diferente a las maysculas
y minsculas.
/* Este es el primer programa en C++. Se utiliza
un comentario tipo C para que pueda abarcar ms de
una lnea de comentario */
//LIBRERAS DE BIBLIOTECA
#include<iostream.h> //Para usar cin y cout
#include<conio.h> //Para usar getch() y clrscr()
#include<stdio.h> //Para usar gets()
//PROGRAMA PRINCIPAL
void main(){
//Declaracin de variables
int edad;
//dato entero
int anioNac;
//dato entero
int anioAhora;
//dato entero

Op.
+
*
/
%

Operandos enteros Operandos flotantes


Suma
Suma
Resta
Resta
Producto
Producto
Divisin entera
Divisin flotante
Residuo en div entera Divisin flotante

Operadores de incrementacin y decrementacin


Op.
Uso
Idntico a
++ a++ / ++a a=a+1
-- a-- / --a a=a-1

Introduccin a la Programacin
Pgina 15 de 18

Operadores relacionales
Op.
==
!=
>
<
>=
<=

ESTRUCTURAS DE SELECCIN
Significado
igual que
diferente que
mayor que
menor que
mayor o igual que
menor o igual que

Operadores lgicos
Op.
!
&&
||

I.S.C. Carlos Ernesto Arjona Marrufo

Significado
Funcin
Negacin
Niega de V a F y viceversa
Y lgica
Devuelve V si todos los operandos son V
O lgica
Devuelve V si al menos un operando es V

Siempre que se utilice un operador relacional o lgico, el resultado


ser un valor lgico.
Operador ,
Permite combinar dos o ms expresiones en una sola lnea.
Operador ( )
Es el operador de llamada a funciones. Sirve para encerrar los
argumentos de una funcin, efectuar conversiones explcitas de
tipo y resolver conflictos de prioridad entre operadores.
Operador [ ]
Designa un elemento de un arreglo.
Conversin de tipos implcita
Los operandos de tipo ms bajo se convierten a los de tipo ms
alto de forma automtica.
int
unsigned int
long
unsigned long
float
double
long double
Ejemplo:

int a=10;
float b=20.3;
b=a; //No hay problema
a=b; //Resultado impredecible
Conversin de tipos explcita
Se hace mediante el operador de cast. Hay 2 maneras:
(Tipo_de_dato) valor //Estilo C: convierte valor a Tipo_de_dato
Tipo_de_dato (valor) //Estilo C++: convierte valor a Tipo_de_dato
Esto es muy til para evitar divisiones enteras por accidente.

if - else
if (condicin) {
Instrucciones a ejecutar si condicin es verdadera
}
else {
Instrucciones a ejecutar si condicin es falsa
}
Caractersticas
En su forma ms sencilla el if puede omitir la parte else. Si l
condicin fuera falsa no se realizar ninguna accin.
Si tenemos un if que trae else, en su ejecucin o se ejecutan
slo las instrucciones correspondientes al if o slo las
instrucciones que le corresponden al else. La razn de lo
anterior se debe a que la condicin o es verdadera o falsa en
un momento determinado.
Independientemente si la condicin es verdadera o falsa, si
las instrucciones del if o else son en realidad una sola
instruccin, entonces podrn omitirse las llaves.
switch
switch (expresin) {
case valor1:
Instrucciones a ejecutar si expresin es igual a valor1
break;
case valor2:
Instrucciones a ejecutar si expresin es igual a valor2
break;

default: // opcional
Instrucciones si expresin no coincide con ninguna etiqueta
}
Caractersticas
El valor de la expresin debe ser de tipo int o char
Cada etiqueta (por ejemplo valor1) es un valor nico,
constante. Si estamos trabajando con tipo char, no olvides
encerrar el carcter entre comillas simples.
Si el valor de expresin es igual a una de las etiquetas case,
entonces la ejecucin comenzar con la primera instruccin
a partir del case y terminar hasta encontrar el primer break
que se encuentre
Si el valor de expresin no coincide con ninguna etiqueta
case y no se ha establecido un default entonces el control se
pasar a la siguiente instruccin despus del switch sin
realizar ninguna accin.

CICLOS O BUCLES
while
while (condicin) {
Instrucciones que se ejecutan mientras condicin sea
verdadera
}

Introduccin a la Programacin
Pgina 16 de 18

do - while
do {
Instrucciones que se ejecutan mientras condicin sea
verdadera
} while (condicin);
Caractersticas
Los bucles while y do-while son muy parecidos. Ambos estn
controlados por una condicin que ser verdadera o falsa. La
diferencia consiste en que momento se analiza la condicin.
En los ciclos while la condicin se evala al principio. Si la
primera vez que se revisa dicha condicin es falsa, las
instrucciones no se ejecutarn ni una sola vez devolviendo el
control del programa a la siguiente instruccin despus del
while. Si la condicin fuera verdadera, entonces se llevan a
cabo las instrucciones del bucle y se vuelve a revisar la
condicin repitiendo el procedimiento explicado.
En los ciclos do-while la condicin se evala hasta el final. La
primera vez se ejecutarn las instrucciones (sin importar si la
condicin es verdadera o falsa) y luego se verificar la
condicin. Si sta es falsa se sale del ciclo (pero las
instrucciones ya se ejecutaron al menos una vez) y se
devuelve el control del programa a la siguiente instruccin
despus del do-while. Si es verdadera se vuelven a ejecutar
las instrucciones del bucle una vez ms y se revisa
nuevamente la condicin repitiendo el procedimiento
explicado.
De forma anloga al if, si las instrucciones a ejecutar en el
ciclo (ya sea do o do-while) en realidad es una sola
instruccin, podrn omitirse las llaves.
Las condiciones debern ser falsas en algn momento. De lo
contrario se cae en un bucle infinito.

I.S.C. Carlos Ernesto Arjona Marrufo

3.

4.

debe volverse falsa cuando se hayan ejecutado las


instrucciones la n veces deseadas.
Incremento. Incrementa o decrementa las variables
contadoras que sirven de control para el bucle. Lo habitual
es que sea de uno en uno, aunque no necesariamente tiene
que ser as.
Instrucciones. Son las rdenes que debern repetirse las n
veces deseadas.

En realidad el for equivale al siguiente cdigo:


Inicializacin;
while (CondicinIteracin) {
Instrucciones del ciclo for;
Incremento;
}

Caractersticas
Los bucles for difieren de los bucles while y do-while en que
el for est controlado por contador mientras que los otros
estn controlados por condicin. Esto significa que con el for
ya se sabe de antemano cuantas veces han de repetirse las
instrucciones, mientras que con el while y do-while este dato
no se sabe por anticipado.
Ejemplo:
for(i=0; i <=5; i++) {
// incremento de uno en uno
cout << Esto se repite 6 veces. No 5. \n;
cout << i = << i << \n; // i = 0, 1, 2, 3, 4 y 5. Cuando i = 6
// la condicin (i <=5) ser falsa y el
// for termina
}

Ejemplos: (Las llaves se pudieron haber omitido)


while (0) {
cout << Esto nunca se imprime, porque 0 = falso;
}

for (h=10; h>=0; h-=2) {


// decremento de dos en dos
cout << Esto se repite 6 veces \n;
/* h = 10, 8, 6, 4, 2 y 0. Cuando h = -2 la condicin ser falsa*/
}

do {
cout << Esto se imprime una sola vez;
} while (0); // La condicin es falsa

for (g=10; g<=0; g-=2) {


// decremento de dos en dos
cout << Esto no se imprimir;
/* La primera vez, g = 10. La condicin es falsa desde el
principio puesto que g > 0. El bucle termina inmediatamente*/
}

while (1) { // Condicin verdadera. Entrar al bucle.


cout << Bucle infinito; // La condicin nunca se vuelve falsa
}
for
for (Inicializacin; CondicinIteracin; Incremento) {
Instrucciones que se ejecutan n veces
}

for (k=0; k<=10; k-=5) {


// decremento de cinco en cinco
cout << BUCLE INFINITO. \n;
/* k = 0, -5, -10 La condicin nunca se vuelve falsa*/
}

ARREGLOS
El bucle for contiene 4 partes:
1. Inicializacin. Inicializa las variables de control del bucle.
Pueden usarse una o ms variables. Estas variables son en
realidad contadores.
2. CondicinIteracin. Contiene una expresin lgica que hace
que el bucle realice las iteraciones de las instrucciones,
mientras que la expresin sea verdadera. Esta condicin

Un arreglo o array es una secuencia de objetos del mismo tipo.


Los objetos se llaman elementos del arreglo y se numeran
consecutivamente a partir del 0. Estos nmeros: 0, 1, 2, se
denominan valores ndice.

Introduccin a la Programacin
Pgina 17 de 18

I.S.C. Carlos Ernesto Arjona Marrufo

Si el nombre de un arreglo es a, entonces a[0] es el nombre del


elemento que est en la posicin 0, es decir, el primero. a[1] es el
elemento que est en la posicin 1 (el segundo), y as
sucesivamente. En general, el elemento i-simo est en la
posicin i-1. De modo que si el arreglo tiene n elementos, sus
nombres son a[0], a[1], , a[n-1].

for ( i=0; i<5; i++ ){


// i toma los valores 0, 1, 2, 3 y 4
for ( j=0; j<3; j++ ){
// j toma los valores 0, 1 y 2
cin>> tabla[ i ] [ j ]; // Lectura del elemento en la fila i y
// columna j
}
}

Declaracin de un arreglo
tipo_de_datos Nombre_del_arreglo [ Nmero_de_elementos ];

Arreglos como parmetros de funcin


Si se enva un elemento de un arreglo como parmetro de una
funcin, entonces se trata como paso por valor.
Si se enva el nombre de un arreglo como parmetro de una
funcin, entonces se trata como paso por referencia, pues el
nombre de un arreglo es en s un puntero al primer elemento de
dicho arreglo.

La declaracin anterior, hace que el compilador reserve espacio


suficiente para contener el nmero de elementos del tipo de dato
especificado. Los elementos de los arreglos se almacenan en
bloques contiguos de memoria.
Arreglos de caracteres Vs cadenas de texto
Las cadenas se deben almacenar en arreglos de caracteres. Pero
las cadenas contienen el carcter nulo (\0) al final del arreglo.

En la figura mostrada arriba, a) representa un arreglo de


caracteres y b) una cadena.
Asignacin de cadenas
Es posible asignar la cadena del ejemplo anterior de la siguiente
forma:
a[0] = h; // comillas simples por tratarse de un carcter
a[1] = o;
a[2] = l;
a[3] = a;
a[4] = \0;
Sin embargo no es posible asignarlo de la siguiente forma:
a = hola;
Para copiar una constante cadena o una variable cadena a otra
variable cadena se debe utilizar la funcin strcpy(). Esta funcin
se encarga de aadir el carcter nulo al final de la cadena.
strcpy (a, hola); //requiere la librera string.h
Arreglos multidimensionales
Son similares a los de una dimensin, pero deber especificarse
cada dimensin por medio de un ndice. Por ejemplo:
int tabla [5] [3];
representa la declaracin de un arreglo de 2 dimensiones
conformado por 5 filas (numeradas del 0 al 4) y 3 columnas
(numeradas del 0 al 2); dando como total 15 elementos enteros.
El acceso a los elementos individuales de un arreglo de este tipo,
ya sea para lectura o escritura har necesario que se especifique
cada una de las dimensiones. Por ejemplo:

Introduccin a la Programacin
Pgina 18 de 18

I.S.C. Carlos Ernesto Arjona Marrufo

EJERCICIOS
A continuacin se especifican diversas situaciones en las que se
desea una solucin especfica. Escribe el programa completo en
C++ para lograr dichas peticiones.
Ejercicios de estructuras de seleccin y repeticin
1. Leer el radio de un crculo y calcular el rea y permetro.
2. Leer 4 datos de tipo real llamados A, B, C y D y calcular el
valor de x en funcin de un valor entero k de acuerdo a lo
siguiente:
Si k=1 entonces x= A+B+C+D
Si k=2 entonces x= (A+B+C+D)/4
Si k=3 entonces x= (A/B) (C/D)
Si k=4 entonces x= A2+B2-C2-D2
Si k=5 entonces x= (A+B)1/2 (C+D)1/2
Se debe validar que k est en el rango de 1 a 5 y que no se
hagan operaciones incorrectas (divisiones entre cero y races
cuadradas con nmeros negativos)
3. Leer el nmero de da, mes y el ao (cuatro dgitos). Debe
obtenerse el nombre del mes y la cantidad de das
transcurridos desde el primero de enero. Tmese en cuenta
el ao bisiesto. Sugerencia: si el ao es divisible entre 4
puede considerarse como bisiesto.
4. Dado dos puntos en el eje cartesiano, obtener la distancia
entre ellos. La frmula es: D = ((x1 - x2)2 + (y1 - y2)2)1/2
5. Convertir una temperatura en grados Celsius a Fahrenheit.
La frmula de conversin es F = (9 / 5)C + 32
6. Resolver una ecuacin cuadrtica de la forma ax2 + bx + c =
0
7. Leer n nmeros enteros que deben ser positivos. Contar los
pares y efectuar el producto de los impares. Contar cuantos
terminan en 6. Averiguar cual es el mayor y el menor.
8. Generar los n primeros nmeros de la secuencia de
Fibonacci. En la secuencia de Fibonacci el primer valor es 0
y el segundo 1, los dems se calculan a partir de la suma de
los 2 valores anteriores. As: 0, 1, 1, 2, 3, 5, 8, 13,
9. Calcular el logaritmo natural de un nmero entero positivo x,
mediante la evaluacin de w trminos de la siguiente serie:
Ln( x) =

(x 1) + (x 1)2 + (x 1)3 + ( x 1)4 + ...


x

10. Calcular el nmero de combinaciones de n objetos tomados


n!
en grupos de r, donde r<=n. La frmula es: C =
n,r

r!( n r )!

11. Obtener los primeros n nmeros primos.


12. Leer un nmero y convertirlo a romano.
13. El coseno de un ngulo x en radianes se puede calcular con
2
4
6
la siguiente serie: Cos ( x) = 1 x + x x + ... Calcular
2! 4! 6!
dicha serie con n trminos. Nota: AnguloEnRadianes =
(AnguloEnGrados)( / 180)
14. Resolver un sistema de ecuaciones con 2 incgnitas de la
forma Ax + By = C y Dx + Ey = F
15. Calcular la constante mediante la siguiente serie:
2
1
1
1
= 1 + 2 + 2 + 2 ... con n trminos.
6
2
3
4
16. Generar los primeros n nmeros capicas.

17. Crear una calculadora simple. Lee dos flotantes y un


caracter. Si el caracter es un +, se imprime la suma; si es un
se imprime la resta; si es un * se imprime la multiplicacin y
si es un / se imprime la divisin. Debe terminarse hasta que
se proporcione como operador la letra X.

Ejercicios de arreglos
18. Leer n calificaciones. Calcular cuantos estn reprobados.
Averiguar cual es la mayor y la menor. Cuantos estn abajo
y arriba del promedio. Ordenarlas de forma ascendente y
mostrarlas al usuario.
19. Se debe proporcionar un arreglo de dos dimensiones de
orden M x N. Determinar cual es el elemento menor de todo
el arreglo as como la posicin que ocupa en l.
20. Leer un arreglo bidimensional de orden L x L. Calcular el
producto de los elementos de la diagonal inversa y principal.
21. Leer dos arreglos llamados A y B de orden M x N y calcular
la suma de los arreglos dados. Determinar el elemento
menor y la posicin que ocupa en el arreglo calculado.
22. Leer un vector x de n elementos numricos. Calcular la
varianza
de
dicho
vector.
La
frmula
es:
N

(x[i ] media )
Var =

i =1

23. Se tienen 2 vectores llamados x y y, cada uno contienen N


elementos. Leer dichos arreglos y calcular el coeficiente de
correlacin de rango R entre las listas x y y, el cual se define
N

de la siguiente forma: R = 1

6 ( x[i ] y[i ])

i =1

N N 2 1

24. Dado un arreglo de orden M x M se intercambiarn los


valores de las diagonales. Es decir, la diagonal principal se
volver la inversa y viceversa.

INVESTIGACIONES
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

Compilador Vs Intrprete
Historia y caractersticas Fortran, C, Java, Visual Basic, C#
Programacin secuencial Vs Modular Vs POO
IDEs. NetBeans, SharpDevelop, Visual Studio .Net
C Vs C++ / C++ Vs C#
C++ Vs Java / Java Vs VB .Net
Basic Vs Visual Basic 6 / Visual Basic 6 Vs VB .Net
Mquina virtual (JRE, Framework .Net)
Modelo espiral de desarrollo de software
Caractersticas y funcionamiento de printf y scanf
Caractersticas de UML para desarrollo de software
Caractersticas (que es, lenguaje en que se programa,
tecnicismos) de GNOME y KDE
AJAX, PHP, ASP, JavaScript
API, DirectX, OpenGL
Ensamblador como HW + SW (Programacin de PICs)
Programacin distribuida y multihilo (o concurrente)

Vous aimerez peut-être aussi