Vous êtes sur la page 1sur 46

BASES FUNDAMENTOS DE

PROGRAMACION
Agenda:

1. Desarrollo del Tema


2. Trabajo y Actividades
Algoritmos:
Es un conjunto finito de instrucciones o pasos que sirven
para ejecutar una tarea o resolver un problema. En sí
algoritmo es una secuencia de pasos lógicos que permite
la solución de un problema.

Ejemplos vida cotidiana:


Asistir a la clase de fundamentos de Programación.
Cambiar la llanta de un carro.
Para cocinar.

Índole Matemático:
Resolver operaciones matematicas.
Algoritmos: Características

Los algoritmos deben ser: Definido, preciso y finito.

 Definido: Si se sigue el mismo proceso mas de una


vez llegaremos al mismo resultado.
 Preciso: debe indicar de realización de cada paso.
 Finito: Debe tener un determinado numero de pasos;
debe terminar en algún momento de lo contrario se puede
llegar a un ciclo infinito de ejecución.
Algoritmos:

La mayoría de los algoritmos de utilidad al programador poseen 3


partes principales:

Entrada de Datos

Algoritmo Procesamiento de Datos

Salida de Resultados
FUNDAMENTOS DE PROGRAMACION

Algoritmos:

Los algoritmos pueden representarse a través de un


conjunto de palabras por medio de las cuales se puede
representar la lógica de un programa. Este conjunto de
palabras constituyen lo que se conoce como
pseudocódigo. Además, los algoritmos se pueden
representar gráficamente a través de un diagrama de
flujo.
Solución de Problemas:
Pasos para la solución de un problema:

 Análisis del problema.


 Diseño del Algoritmo.
 Solución del algoritmo en la computadora.

Análisis del problema.

ANALISIS DEL
PROBLEMA

DEFINICION DEL ESPECIFICACIONES ESPECIFICACIONES


PROBLEMA DE ENTRADA DE SALIDA
Solución de Problemas:
Diseño del Algoritmo:
Creación de los pasos sucesivos que indican las
instrucciones a ejecutar. Consiste en realizar una
descripción paso a paso.

Solución del Problema - Computadora:


Se compone de:
• Codificación del algoritmo en un programa
• Ejecución del programa.
• Comprobación del programa.
Tipos de Datos:
Los datos son los objetos sobre lo que opera una
computadora. Los tipos de datos que manipulan las
computadoras se clasifican datos simples y datos
estructurados.
Enteros byte , short, int, long.
Numéricos: Reales float, double

Se usa para almacenar variables que


Simples Lógicos (Booleanos): presenten dos estados, que serán
representados por los valores true y
false

Conjunto finito y ordenado de Alfabéticos


Carácter: caracteres, un dato tipo Numéricos
carácter contiene un solo
carácter. Especiales
Tipos de Datos:

Arrays ( vectores – matrices)


Simples o estáticos
Registros
Ficheros
Conjuntos

Datos Cadenas
Estructurados

Compuestos Listas (filas y colas)


Listas enlazadas
o Dinámicos
Arboles
Grafos
Operadores:
Si analizamos la sentencia siguiente: var1 = var2 + var3

Estamos diciéndole al programa, por medio del operador +, que


compute la suma del valor de dos variables , y una vez realizado
ésto asigne el resultado a otra variable var1. Esta última operación
(asignación) se indica mediante otro operador, el signo =.
El lenguaje C tiene una amplia variedad de operadores, y todos
ellos caen dentro de 6 categorias:

 Aritméticos
 Relacionales
 Lógicos
 Incremento y decremento
 Asignacion.
 Manejo de Bits (Investigar).
Operadores:
Aritmeticos:
Comprenden las cuatro operaciones basicas: suma, resta,
multiplicación y división, con un agregado, el operador módulo .

SIMBOLO DESCRIPCION EJEMPLO


+ SUMA a+b
- RESTA a-b
* MULTIPLICACION a*b
/ DIVISION a/b
% MODULO a%b
- SIGNO -a

El operador módulo ( % ) se utiliza para calcular el resto del


cociente entre dos ENTEROS , y NO puede ser aplicado a variables
del tipo float ó double.
Operadores:
Relacionales:
Todas las operaciones relacionales dan sólo dos posibles resultados
: VERDADERO ó FALSO . En el lenguaje C, Falso queda
representado por un valor entero nulo (cero) y Verdadero por
cualquier número distinto de cero
SIMBOLO DESCRIPCION EJEMPLO
< menor que (a < b)
> mayor que (a >b)
<= menor o igual que (a < = b)
>= mayor o igual que ( a >>= b )
== igual que ( a = = b)
!= distinto que ( a != b)

Jerarquía de operadores: a < b + c se interpreta como a < ( b + c ),


pero aunque sea superfluo se recomienda el uso de paréntesis a fin
de aumentar la legilibilidad del texto.
Operadores:
Lógicos:
Hay tres operadores que realizan las conectividades lógicas:
Y (AND) , O (OR) y NEGACION (NOT).

SIMBOLO DESCRIPCION EJEMPLO


&& Y (AND) (a>b) && (c < d)
|| O (OR) (a>b) || (c < d)
! NEGACION (NOT) !(a>b)

Incremento y Decremento:

SIMBOLO DESCRIPCION EJEMPLO


++ incremento ++i ó i++
-- decremento --i ó i--
Operadores:
Ejemplos
Sentencias :
a=a+1;
a++ ;

tienen una acción idéntica, de la misma forma que

a = a - 1;
a-- ;

Es decir incrementa y decrementa a la variable en una unidad.


Operadores:
Asignación:

SIMBOLO DESCRIPCION
= ASINACION SIMPLE
+= SUMA
-= RESTA
*= MULTIPLICACION
/= DIVISION
%= MODULO
Variables:
No es más que un nombre para identificar una (o varias) posiciones
de memoria donde el programa guarda los distintos valores de una
misma entidad . Un programa debe DEFINIR a todas las variables
que utilizará , antes de comenzar a usarlas , a fin de indicarle al
compilador de que tipo serán , y por lo tanto cuanta memoria debe
destinar para albergar a cada una de ellas.

Como se declaran:
Globales: Esta se declara antes del main(). Puede ser utilizada en
cualquier parte del programa.

Local: Esta se declara después del main(), en la función en que


vaya a ser utilizada y se destruye al final de esta función.
Constantes:
Las constantes mantienen su valor a lo largo de todo el programa.
Para indicar al compilador que se trata de una constante, se declara
de la siguiente forma.
Contador:
Un elemento cuyo valor se incrementa o decrementa en un valor
constante en cada iteración de un bucle, y se utiliza para controlar
la condición del bucle.En general suelen contar de forma natural
desde 0 y de 1 en 1, aunque se pueden realizar otros tipos de
cuentas necesarios en algunos procesos.

Se utilizan realizando sobre ellos dos operaciones básicas:

Inicialización: todo contador se inicializa a 0 si realiza cuenta


natural o a Vi(valor inicial), si se desea realizar otro tipo de cuenta.

Contabilización o incremento: cada vez que aparece el evento a


contar se ha de incrementar el contador en 1 si se realiza cuenta
natural o en la In (Incremento) si se realiza otro tipo de cuenta.
Acumulador:
Es una variable que también se suele usar en los bucles y que se
incrementa en cada iteración del bucle, pero no en una cantidad
constante. En general se usan para calcular sumas y productos, sin
descartar otros posibles tipos de acumulación.

Al igual que los contadores, para utilizarlos hay que realizar sobre
ellos dos operaciones básicas:

Inicialización: todo acumulador requiere ser inicializado con el


valor neutro de la operación que va a acumular.(0 para sumas y 1
para productos)

Acumulación: cuando se hace presente en la memoria el elemento


a acumular por la realización de una lectura o cálculo, se efectúa la
acumulación.
Interruptores (marca, bandera o flag:

Es una variable que sirve como indicador de una determinada


información y que solo puede tomar uno de dos valores. El valor de
la variable tiene asociado un signo y puede variar a lo largo de la
ejecución.

Podemos decir que actúan como recordatorios manteniendo


características de objetos o cálculos que estuvieron presentes en un
momento anterior de la ejecución de un programa.
Bucles:
Un conjunto de instrucciones que se repiten un número finito de
veces. Lleva asociado aparte de las instrucciones una condición
que es la que determina cuando se termina un bucle. Ejecución de
un bucle (iteración). Los bucles se pueden anidar unos dentro de
otros, y puede haber varios bucles al mismo nivel, pero nunca se
entrelazan.

Identificadores:
Son los nombres que aparecen en el programa dados por el
usuario. Son por tanto los nombres de variables, de constantes, de
subprogramas y nombres de tipos creados por el usuario .
Pseudocodigo:
Es una herramienta algorítmica que permite escribir
pseudoprogramas (imitaciones de programas reales) utilizando un
lenguaje de pseudoprogramación (imitación de lenguajes de
programación de alto nivel).

Pseudocódigo es una combinación de símbolos (+, -, *, /, %, >, >=,


<, <=, ==, y , o, no), términos (leer, imprimir, abrir, cerrar, hacer,
mientras que, para mientras, etc.) y otras características
comúnmente utilizadas en uno o más lenguajes de alto nivel.

Objetivo del Pseudocódigo:

Es permitir que el programador se concentre en los aspectos


lógicos de la solución de los problemas sin tener en cuenta la
sintaxis de lenguajes de programación.
Leer: Significa obtener un dato de algún dispositivo de entrada
como el teclado y almacenarlo en una variable.

Imprimir: Muestra el valor de un variable en algún dispositivo de


salida.

Ejemplo: Programa que calcula el promedio de tres números


insertados por teclado.

Inicio
leer numero1, numero2 numero3
suma = numero1+ numero2 + numero3
promedio= suma/3
imprimir suma, promedio
fin
Programa que muestra el mayor de dos números insertados por
teclado.

Inicio
leer A, B
si A>B entonces
imprima A
sino
imprima B
fin si
fin
Algoritmo que intercambia los valores de dos (2) variables numéricas.

Requiere: 3 variables: A, B, AUX.


Consiste: En asignar una de las variables a la variable auxiliar y se le
va asignando los valores a las demás variables, así:

Inicio
leer A, B
AUX A
A B
B AUX
escribir A, B
fin
Algoritmo que calcula el valor de la suma 1 + 2 + 3 +……..+100.
Requiere: 2 variables: CONTADOR, SUMA.
Consiste: En, inicializar CONTADOR en 1 y SUMA en 0, mientras
que el CONTADOR sea menor o igual a 100, asignele a SUMA lo que
tiene SUMA + CONTADOR e incremente CONTADOR en 1, e imprima
o muestre SUMA:
SUMA CONTAD
Inicio OR

CONTADOR 1 0 1
SUMA 0
mientras que contador <=100, haga 1 2
SUMA SUMA + CONTADOR 3 3
incremente CONTADOR en 1
visualice SUMA 6 4
fin
10
Algoritmo que calcula la suma y el producto de dos variables.

Requiere: 4 variables: A, B, SUMA, MULTI.

Inicio
leer numero A
leer numero B
SUMA = A + B
MULTI = A*B
escribir SUMA, MULTI
fin
DIAGRAMAS DE FLUJO
Son representaciones gráficas de los algoritmos.

Utiliza símbolos (cajas) que tienen los pasos del algoritmo unidos por
flechas (líneas de flujo) que indican la secuencia en que se deben
ejecutar.

Terminal: Representa el inicio y fin de un programa.

Entrada y Salida: Nos indica ingresar datos de un


periférico, así como mostrarlo.

Proceso: son acciones que el programa tiene que


realizar
si
Desición: Indica operaciones lógicas o de comparación
entre datos.
no

Salida: Para mostrar datos o resultado

Conector: Enlazar dos partes cualquiera de un


programa

Línea de Flujo o Indicador de dirección: Indica el


sentido de operación de las operaciones.
Inicio

Leer A, B

AUX A
A B
B AUX

Escribir A, B

Fin
Inicio

CONTADOR 1
SUMA 0

CONTADOR
no Fin
SUMA
<= 100

si

SUMA SUMA + CONTADOR

CONTADOR + 1
PROGRAMACION ESTRUCTURADA
Conjunto de técnicas que hacen que los programas sean fáciles de: Escribir,
verificar, leer y mantener.

La programación estructurada es un estilo de programación con el cual el


programador elabora programas, cuya estructura es la más clara posible,
mediante el uso de tres estructuras básicas de control lógico, a saber:
Secuencial, selección e interacción.

Diseño Desendente (“Top-down”):

Es el proceso mediante el cual un problema se descompone en una serie de


niveles. Consiste en efectuar una relación entre las sucesivas etapas de tal
modo que se relacionan una con otras mediante entradas y salidas de
información. Se descompone el problema en etapas o estructuras
jerárquicas.
Secuencia: Indica que las instrucciones de un programa se ejecutan
una después de la otra, en el mismo orden en el cual aparecen en el
programa. Se representa gráficamente como una caja después de
otra, ambas con una sola entrada y una única salida.

Las cajas A y B pueden ser definidas para


ejecutar desde una simple instrucción hasta
un módulo o programa completo, siempre y
cuando que estos también sean programas
apropiados.
Selección:

También conocida como la estructura SI-CIERTO-FALSO, plantea la


selección entre dos alternativas con base en el resultado de la
evaluación de una condición o predicado; equivale a la instrucción IF
de todos los lenguajes de programación.

Se realiza una u otra operación, dependiendo de una condición.

C es una condición que se evalúa; A es la


acción que se ejecuta cuando la evaluación
de este predicado resulta verdadera y B es la
acción ejecutada cuando indica falso. La
estructura también tiene una sola entrada y
una sola salida; y las funciones A y B también
pueden ser cualquier estructura básica o
conjunto de estructuras.
Iteración:

También llamada la estructura HACER-MIENTRAS-QUE, corresponde


a la ejecución repetida de una instrucción mientras que se cumple una
determinada condición.

Repetición de una o varias operaciones mientras se cumpla una


condición.

A se ejecuta repetidamente mientras que la


condición C se cumpla o sea cierta. También
tiene una sola entrada y una sola salida;
igualmente A puede ser cualquier estructura
básica o conjunto de estructuras.
ESTRUCTURAS DE CONTROL
SELECTIVAS
Sentencia IF:

Expresión
if (expresion)
lógica {
sentencia 1;
sentencia 2;
sentencia N;
}

 Si la expresion es verdadera (valor distinto de 0), entonces se ejecuta sentencia.


 La expresion debe estar entre paréntesis.
Sentencia if - else:

if (expresion 1)
F Expresión V
lógica Sentencia1
else
Sentencia 2

 Si expresion es verdadera (valor distinto de 0), entonces se ejecuta


sentencia 1; en caso contrario, se ejecuta sentencia 2.
 Si las sentencias son compuestas se cierran entre { }.
 Las sentencias pueden ser a su vez sentencias if-else.
Un ejemplo de uso de esta sentencia es el siguiente fragmento de
programa, que elige el menor de tres números:

float a, b, c, menor;
a=2; b=4; c=1;

if (a < b)
{
if (a < c)
menor = a;
else
menor = c;
}
else
{
if (b < c)
menor = b;
else
menor = c;
}
Switch:

Esta estructura se utiliza para realizar menús, de manera que según


la opción seleccionada se ejecuten una serie de sentencias.

switch (expresion)
{
case exp 1:
sentencia 1;
sentencia 2;
break;
case exp 2:
case exp N:
sentencia N;
break;
default:
sentencia D; }
Ejemplo:

switch(dia)
{
case 1: printf("Lunes"); break;
case 2: printf("Martes"); break;
case 3: printf("Miércoles"); break;
case 4: printf("Jueves"); break;
case 5: printf("Viernes"); break;
case 6: printf("Sábado"); break;
case 7: printf("Domingo"); break;
default: printf(“Día Incorrecto "); break;

}
Estructuras Cíclicas o Bucles:
Los bucles son estructuras que permiten ejecutar partes del código
de forma repetida mientras se cumpla una condición. Esta condición
puede ser simple o compuesta de otras condiciones unidas por
operadores lógicos.

WHILE Expresió
F
n lógica
while (condición)
sentencia; V

Ejemplo:

while (numero<=10)
{ Se controla la condición antes de entrar
printf("%d\n",numero); en el bucle, si esta no se cumple el
numero++; programa no entrará en el bucle.
}
Ejemplo:

int suma, limite;


suma=1;
imite=100;

while(limite>0)
{
suma=suma+limite;
limite--;
}
DO ……WHILE

do
{
sentencia1; V Expresió
sentencia2; n lógica

}
F
while (condición);

Se controla la condición al final del bucle. Si ésta se cumple, el


programa vuelve a ejecutar las sentencias del bucle.
La única diferencia entre las sentencias while y do...while es
que con la segunda el cuerpo del bucle se ejecutará por lo
menos una vez.
Ejemplo:

int numero = 0;
do
{
printf("Introduce el número 0:\n");
scanf("%d", &numero); /* Se lee el numero */
}
while (numero != 0)
FOR
A 0
For (inicialización;condición;incremento)
{
sentencia1; A<=0
sentencia2;
}

For (A=0, A<=10, A++)


{ A++
sentencia1;
sentencia2;
}

Vous aimerez peut-être aussi