SlideShare una empresa de Scribd logo
1 de 64
Tema VI. Diseño de programas
para la resolución de problemas
de ingeniería
Objetivo: El alumno aplicará el
método de Diseño de Programas en
la elaboración de programas que
resuelvan problemas básicos de
ingeniería.
6.1 Teoría del diseño de
programas
Programación
Cuando se está construyendo software,
una de las fases más importantes, y en
la que se invierte más tiempo, es la
fase de desarrollo en la que se utilizan
lenguajes y técnicas de programación
para escribir el programa que resuelve
el problema
6.1 Teoría del diseño de
programas
Paradigmas de programación
La evolución de los lenguajes de programación ha ido
paralela a la idea de paradigma de programación:
enfoques alternativos a los procesos de
programación.
En realidad un paradigma de programación
representa fundamentalmente enfoques diferentes
para la construcción de soluciones a problemas y por
consiguiente afectan al proceso completo de
desarrollo de software.
6.1 Teoría del diseño de
programas
Existen ciertas características que un programa debe
cumplir:
 Fiable: debe funcionar correctamente y sin fallos
 Adaptable: fácil de incorporar en otros sistemas con
modificaciones mínimas
 Reutilizable: total o parcialmente, para reducir costos y
reutilizar componentes cuya fiabilidad está comprobada
 Mantenible: los programas son construidos por muchas
personas agrupadas en equipos de trabajo
Tipos de programación
Existen diferentes técnicas de programación
que se pueden ordenar según su
complejidad. Debido a esta complejidad, el
aprendizaje debería seguir el siguiente
orden propuesto.
6.1 Teoría del diseño de
programas
6.1 Teoría del diseño de
programas
Programación Convencional
Es el primer programa realizado por alguien que empieza a programar, será un único
“programa principal” constituido por una serie de comandos o instrucciones escritos
secuencialmente.
Programación Modular
Da un paso más a la estructuración de un programa agrupando partes del
mismo en módulos de una funcionalidad similar.
Programación orientada a objetos
Resuelve algunos de los problemas que surgen con la programación
modular y estructurada.
6.1 Teoría del diseño de
programas
Programación Estructurada
Cuando los programas se vuelven más grandes, cosa que
lógicamente sucede cuando aumenta la complejidad del
problema a resolver, la lista de instrucciones aumenta
considerablemente , de modo tal que el programador tiene
muchas dificultades para controlar ese gran número de
instrucciones.
Para resolver este problema los programas se
descompusieron en unidades mas pequeñas que adoptaron el
nombre de funciones (procedimientos, subprogramas o
subrutinas)
6.1 Teoría del diseño de
programas
Fases en la resolución de problemas
El proceso de resolución de un problema con una computadora conduce a
la escritura de un programa y a su ejecución en la misma. Aunque el
proceso de diseñar programas es –esencialmente– un proceso creativo, se
puede considerar una serie de fases o pasos comunes, que generalmente
deben seguir todos los programadores. Las fases de resolución de un
problema con computadora son:
 Análisis del problema
 Diseño del algoritmo
 Codificación
 Compilación y ejecución
 Verificación
 Depuración
 Mantenimiento
 Documentación
Análisis El problema se analiza teniendo presente la
especificación de los requisitos dados por el cliente de la
empresa o por la persona que encarga el programa.
Diseño Una vez analizado el problema, se diseña una solución
que conducirá a un algoritmo que resuelva el problema.
Codificación La solución se escribe en la sintaxis del lenguaje de
alto nivel y se obtiene un programa fuente que se compila a
continuación.
6.1 Teoría del diseño de
programas
6.1 Teoría del diseño de
programas
Ejecución, verificación y depuración
EL programa se ejecuta, se comprueba rigurosamente y se eliminan todos
los errores que puedan aparecer.
Mantenimiento
El programa se actualiza y modifica, cada vez que sea necesario, de modo
que se cumplan todas las necesidades de cambio de sus usuarios.
Documentación
Escritura de las diferentes fases del ciclo de vida del software,
esencialmente el análisis, diseño y codificación, unidos a manuales de
usuario y de referencia, así como normas para el mantenimiento.
Calidad
Las sentencias de un programa, también
llamadas código del programa o código fuente,
pueden ser leídas por muchas personas a lo
largo de su ciclo de vida, por tanto es
fundamental que estén bien redactadas, con un
estilo determinado para que su significado sea
claro y no lleve a ambigüedades.
6.1 Teoría del diseño de
programas
Documentación
La documentación ayudará a comprender
un programa para así saber utilizarlo y
poder realizar futuras modificaciones.
6.1 Teoría del diseño de
programas
6.1 Teoría del diseño de
programas
Interna
Manual de usuario
Externa
Son los comentarios o aclaraciones que van junto al código fuente para clarificar
los pasos seguidos en un programa.
Es un documento donde se define: la descripción del problema, nombre del autor,
el algoritmo utilizado para la resolución del problema, expresado en pseudocódigo
o diagrama de flujo, el diccionario de datos, en el que se especifica dónde y cómo
se almacenan los datos del sistema y los lugares donde se utilizan, el código fuente
o programa.
Describe los pasos que debe seguir el usuario para utilizar el programa y conseguir
los resultados esperados.
Lenguaje C
Dennis Ritchie inventó y escribió el primer
compilador para el lenguaje C en un DEC PDP-11
Variantes de C
 Turbo C
 C++
 Visual C++
 C#
6.2 Vinculación del diseño de
programas al conocimiento algorítmico
6.2 Vinculación del diseño de
programas al conocimiento algorítmico
Historia del Lenguaje C
La historia del lenguaje C comienza a finales de los años 60 en los
Laboratorios Bell propiedad de la empresa americana AT&T. Uno de los
proyectos que ahí se desarrollaban era la escritura de un sistema operativo
con características multitarea y multiproceso llamado UNIX.
La primera versión del lenguaje de programación creado para desarrollar el
SO UNIX fue el lenguaje B, escrito por Ken Thompson.
En 1972, Dennis Ritchie, toma el relevo y realiza algunas modificaciones en
el lenguaje B, convirtiéndose en el lenguaje C. Ese mismo año, se
reescribe el código de UNIX en lenguaje C y, a partir de 1973, se convierte
en el lenguaje oficial de UNIX.
6.2 Vinculación del diseño de
programas al conocimiento algorítmico
Características del Lenguaje C
En definitiva, el lenguaje C tiene las siguientes
características:
Portabilidad
Código binario altamente optimizado
Lenguaje general y pensado para la programación
estructurada
La función main( )
El lenguaje C está basado en el concepto de
funciones. Un programa C es una colección de
una o más funciones, en donde cada una tiene
un nombre y una lista de argumentos.
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
Estructura general de un programa C:
Directivas para el procesador
 Archivos include
 Constantes define
Declaraciones globales
 Declaraciones de funciones
 Declaraciones de variables globales
Función principal main()
 Declaración de variables locales Finalización del programa exit(()
 Sentencias ejecutables
Funciones
 Cabecera de la función Sentencias Ejecutables
 Declaración de variables locales Sentencia de salida de la función: return
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
Ejemplo:
Escribir un programa que imprima las palabras “¡Hola mundo!” en el
dispositivo de salida.
/*Programa saludo*/
#include <stdio.h>
void main(void)
{
printf(“n ¡Hola mundo!”);
}
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
Observaciones
/* */ son símbolos que engloban a los comentarios de un
programa escrito en C.
main() es el nombre de la función que en este momento
no requiere ningún tipo de parámetros de entrada y
salida.
{ } delimitan el alcance de la función
printf() es una función llamada por main() a la cual se
le pasa el parámetro “n ¡Hola mundo!”
n Indica un salto de línea
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
Observaciones
“void” indica al compilador que la función no retornará un valor al
terminar de ejecutarse y que tampoco requiere de un argumento de
entrada
La directiva #include indica que se hará uso de la lista de
encabezados que se encuentran en el archivo descrito entre < >
Directivas para el preprocesador
Las directivas para el preprocesador aparecen siempre al comienzo de
los programas. Se identifican por su primer carácter, que es el carácter
almohadilla (#). Estas directivas le indican al compilador que incluya
en el código fuente, el código fuente contenido en los archivos dentro
de ‘<‘ y ‘>’
…Recordatorio
Aprender a programar es semejante a aprender a conducir,
solamente se logra frente a la computadora.
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
Rangos mínimos para los tipos de datos en lenguaje C
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
Precisión de los tipos de datos
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
Formato de un programa en C
Después de presentar la estructura de un programa
en C mediante un ejemplo real, donde se observa la
manera que tienen los diferentes elementos del
lenguaje de encajar en el programa, es necesario,
al igual que en cualquier otro lenguaje de
programación, llevar a cabo un análisis
pormenorizado de dichos elementos. Éstos,
combinándolos de forma apropiada, no permitirán
elaborar los programas deseados.
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
El conjunto de caracteres de C
Del mismo modo que en nuestro lenguaje habitual
utilizamos un conjunto de caracteres para construir
instrucciones que tengan significado, los programas que
se realicen en C se escriben utilizando un conjunto de
caracteres formado por:
 Las 26 letras minúsculas del alfabeto inglés ( a b c d e f g h i j k l m
n o p q r s t u v w x y z)
 Las 26 letras mayúsculas (A B C D E F G H I J K L M N O P Q R S T U V
W X Y Z)
 Los 10 dígitos (1 2 3 4 5 6 7 8 9 0)
 Los símbolos especiales (@ ^ { } [ ] ( ) & $ % # ~ ‘ “ / ? ; : _ . , = / * -
+)
 El espacio en blanco o barra espaciadora
6.2 Vinculación del diseño de
programas al conocimiento
algorítmico
Identificadores
Los identificadores son los nombres que utilizamos para
representar los diferentes elementos de nuestro
programa (tipos de datos, constantes, variables,
funciones y etiquetas). Los identificadores se crean
especificándolos en las declaraciones, de este modo, se
puede utilizar dicho identificador en las sentencias
posteriores del programa para referirnos al elementos
asociado a él.
6.3 Características básicas de un
programa en lenguaje C
Sentencias de Control
En muchas ocasiones, los programas requieren que un
conjunto de instrucciones se ejecute de forma repetida
hasta que se cumpla una condición.
En otras ocasiones, los programas requieren que se
realice un test o comprobación lógica en algún punto
concreto, realizándose a continuación alguna acción que
dependerá del resultado de la comprobación.
Todas estas operaciones se pueden realizar mediante las
sentencias de control de C.
6.4 Elementos y estructuras del
lenguaje C en el diseño de programas
Clasificación de las sentencias de control
6.4 Elementos y estructuras del
lenguaje C en el diseño de
programas
Elabore un programa que resuelva el área de un triángulo (la base y
la altura son valores fijos)
6.4 Elementos y estructuras del
lenguaje C en el diseño de
programas
Sentencia IF/ELSE
Su forma básica sería la siguiente:
If (expresión) sentencia;
En esta sentencia se evalúa expresión.
Si el resultado es verdadero, se ejecuta
sentencia; si el resultado es falso, se salta a
sentencia y se prosigue en la línea siguiente.
Hay que recordar que sentencia puede ser una
sentencia simple o un conjunto de sentencias (en
caso de que fueran varias deberían ir contenidas
en bloque entre llaves {…})
6.4 Elementos y estructuras del
lenguaje C en el diseño de
programas
6.4 Elementos y estructuras del
lenguaje C en el diseño de programas
Sentencia SWITCH
En este caso se evalúa una expresión
(condición) y dependiendo del valor
que devuelva, que pueden ser
múltiples valores, se ejecutará un
bloque de sentencias y otro.
En el caso de la sentencia if/else, se
evaluaba una condición y sólo podían
ejecutarse dos bloques de sentencias
dependiendo de si esa condición se
cumplía o no. La forma general de
switch es la siguiente:
Sentencia WHILE (Iteración)
Esta sentencia se considera una sentencia de tipo bucle que
permite repetir una serie de veces la ejecución de un bloque de
código. Esta repetición se realiza hasta que se cumpla una
determinada condición de tipo lógico o aritmético. En su forma
general seria:
6.4 Elementos y estructuras del
lenguaje C en el diseño de programas
Sentencia DO..WHILE (Iteración)
Se considera una sentencia de tipo bucle que se comporta
exactamente igual que la sentencia while, con la
diferencia de que dicha evaluación se realiza al final de
cada pasada en lugar de al principio, por lo que se asegura
que, al menos, se ejecutará una vez el bloque de
sentencias. Su forma general es la siguiente:
6.4 Elementos y estructuras del
lenguaje C en el diseño de programas
Sentencia FOR (Iteración)
La sentencia de control for permite repetir una serie de veces
la ejecución de un bloque de código. La ventaja de la
sentencia for sobre while está en que en la cabecera de la
construcción for se tiene toda la información sobre cómo se
inicializan, controlan y actualizan las variables de bucle. La
evaluación de la condición se realiza al principio de la
ejecución. La forma general de esta sentencia es la siguiente:
6.4 Elementos y estructuras del
lenguaje C en el diseño de
programas
Arreglos Unidimensionales
Un arreglo es una colección de variables del mismo tipo, con
el mismo nombre, y que se diferencian unos de otros a través
de un subíndice.
La forma general de un arreglo es:
Tipo Nombre_Variable[Número_de_elementos]
Cuando el compilador encuentra una declaración de tipo para
un arreglo, reserva una cantidad de espacio suficiente en la
memoria para poder contenerlo. Todo el arreglo es asignado
en localidades contiguas de memoria.
6.5 Elaboración de programas básicos
de ingeniería
6.5 Elaboración de programas
básicos de ingeniería
Ejemplo:
Hacer un programa que lea una cadena y una letra desde el
teclado. El programa debe indicar si la letra se encuentra
presente en la cadena o no.
Digite una cadena
HOLA CHICOS LISTOS
Digite una letra
C
6.5 Elaboración de programas
básicos de ingeniería
#include <stdio.h>
#include <string.h>
void main(void)
{
char szCadena[80];
char cLetra;
int lExisteLetra;
int iContador;
int iLongCadena;
/*Lectura de la cadena*/
printf("nDigite una cadena: ");
gets(szCadena);
/*Lectura de la letra*/
printf("Digite una letra: ");
scanf("%c",&cLetra);
6.5 Elaboración de programas
básicos de ingeniería
/*Preparacion de los contadores */
iLongCadena=strlen(szCadena); iContador=0; /* No existe la
letra por omision */
lExisteLetra=0; /* Mientras no se llegue al fin de cadena y no
se encuentre la letra*/
while(iContador < iLongCadena && !lExisteLetra)
{ /* verificar si existe la letra */
if (szCadena[iContador] == cLetra)
lExisteLetra=1; iContador++;
} if (lExisteLetra)
printf("nLa letra %c si existe en la cadenan",cLetra);
else printf("nLa letra %c no existe en la cadenan",cLetra);
}
6.5 Elaboración de programas básicos
de ingeniería
6.5 Elaboración de programas básicos de
ingeniería
6.5 Elaboración de programas básicos
de ingeniería
Hacer un programa que lea una cadena y determine cuántas
palabras existen en ella.
6.5 Elaboración de programas
básicos de ingeniería
 
6.5 Elaboración de programas básicos de
ingeniería
 
Arreglos Bidimensionales
Un arreglo bidimensional es una colección finita, homogénea y
ordenada de datos, en la que se hace referencia a cada
elemento del arreglo por medio de dos índices. El primero de
los índices se utiliza para indicar la fila, y el segundo, para
indicar la columna.
6.5 Elaboración de programas básicos de
ingeniería
Arreglos Multidimensionales
Un arreglo puede tener más de una dimensión, de
tal manera que forme matrices de dos, tres o aun
más dimensiones.
Tipo nombre_arreglo[d1][d2][d3]…. [dn]
Donde dn es la longitud del arreglo en la n-ésima
dimensión.
6.5 Elaboración de programas
básicos de ingeniería
6.5 Elaboración de programas
básicos de ingeniería
6.5 Elaboración de programas
básicos de ingeniería
6.5 Elaboración de programas
básicos de ingeniería
6.5 Elaboración de programas básicos de
ingeniería
6.5 Elaboración de programas
básicos de ingeniería
Funciones
¿Qué es una función?
Secuencias de operaciones que se utilizarán en varios
puntos de un programa y que permitirán reutilizar
dicha secuencia de operaciones mediante una llamada
a la misma a través del nombre que se le dé a la
función.
Hay dos tipos de funciones, las funciones propias de
librerías de C y las definidas por el programador.
6.5 Elaboración de programas
básicos de ingeniería
Diseño modular de programas
En “fragmentos” independientes es más fácil de
programar.
El “programa principal” será más fácil de leer,
porque no necesitará contener todos los detalles de
cómo se hace cada cosa.
Podremos repartir el trabajo, para que cada persona
se encargue de realizar un “trozo de programa”, y
finalmente se integrará el trabajo individual de cada
persona.
6.5 Elaboración de programas
básicos de ingeniería
Esos “fragmentos” de
programa son lo que
se suele llamar
“subrutinas”,
“procedimientos” o
“funciones”.
En el lenguaje C, el
nombre que más se
usa es el de funciones.
6.5 Elaboración de programas
básicos de ingeniería
Declaración La forma básica de definir una función es:
 indicar el nombre de la función
 seguido de unos paréntesis, como se hace con
“main”.
 después, entre llaves indicaremos todos los pasos
que queremos que dé ese “fragmento de
programa”.
saludar()
{ printf("Bienvenido al programan");
printf("de ejemplon");
printf("Bienvenido al programan"); }
Ahora desde dentro del cuerpo del programa,
es posible “llamar” o “utilizar” a esa función:
main() {
…
saludar();
…
}
6.5 Elaboración de programas
básicos de ingeniería
6.5 Elaboración de programas
básicos de ingeniería
Parámetros de una función
Si nos interesa además indicarle a nuestra función
ciertos datos especiales con los que queremos que
trabaje.
Por ejemplo, si escribimos en pantalla números reales
con frecuencia, puede resultar útil que los muestre con
el formato que nos interese. Lo podríamos hacer así:
escribeNumeroReal( float n ){ printf("%4.2f", n); }
La función se llamaría desde el cuerpo de nuestro programa así:
float x;
main()
{
x= 5.1;
printf("El primer numero real es: ");
escribeNumeroReal(x);
printf(" y otro distinto es: ");
escribeNumeroReal(2.3);
}
Los datos adicionales que indicamos a la función es lo que
llamaremos “parámetros”.
6.5 Elaboración de programas
básicos de ingeniería
6.5 Elaboración de programas
básicos de ingeniería
Valor devuelto por una función
También es posible que la función realice una serie de cálculos y
nos “devuelva” el resultado de esos cálculos
main() {
int resultado, numero= 5;
resultado = cuadrado(numero);
printf(“El cuadrado del numero es %d“, resultado);
printf(“nY el de 3 es %d", cuadrado(3));
}
int cuadrado (int n) {
return n*n;
}
6.5 Elaboración de programas
básicos de ingeniería
Variables locales y Variables globales
Las variables se pueden declarar dentro de un bloque
(una función), y entonces sólo ese bloque las
conocerá, no se podrán usar desde ningún otro bloque
del programa. Es lo que se llaman “variables locales”.
Si se declara una variable al comienzo del programa,
fuera de todos los “bloques” de programa, será una
“variable global”, a la que se podrá acceder desde
cualquier parte.
#include<stdio.h>
void hola(void){
printf(“nnEsta es la función hola”);
printf(“n *** Hola Amigos ***”);
}
void adios(void){
printf(“nnEsta es la función adios”);
printf(“n *** Adios Amigos ***”);
}
void main(void){
printf(“nEste es el programa principal”);
printf(“nRealiza la llamada a la función HOLA”);
hola();
printf(“nRealiza la llamada a la función ADIOS”);
adios();
printf(“nnFin del programa.n Fin de programa principal”);
}
6.5 Elaboración de programas
básicos de ingeniería
6.5 Elaboración de programas
básicos de ingeniería
Este es el programa principal
Realiza la llamada a la función HOLA
Esta es la función hola
*** Hola amigos ***
Realiza la llamada a la función ADIOS
Esta es la función adiós
*** Adiós amigos ***
Fin de programa.
En el programa principal
6.5 Elaboración de programas
básicos de ingeniería
6.5 Elaboración de programas básicos de
ingeniería
6.5 Elaboración de programas
básicos de ingeniería

Más contenido relacionado

La actualidad más candente

La programación extrema
La programación extremaLa programación extrema
La programación extremaingridleona
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introductionMiguel Pastor
 
Libro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaadorLibro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaadorsocrates12854
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructuradajohitafresh
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionraical10
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónKatherine Gonzales
 
Programacion ii capitulo3
Programacion ii capitulo3Programacion ii capitulo3
Programacion ii capitulo3Halmiron85
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
El software 2
El software 2El software 2
El software 2Naudelyn
 

La actualidad más candente (19)

La programación extrema
La programación extremaLa programación extrema
La programación extrema
 
Aspect Oriented Programming introduction
Aspect Oriented Programming introductionAspect Oriented Programming introduction
Aspect Oriented Programming introduction
 
Libro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaadorLibro 3: tareas y saber del programaador
Libro 3: tareas y saber del programaador
 
Programeichon de milagro
Programeichon de milagroProgrameichon de milagro
Programeichon de milagro
 
La programación
La programaciónLa programación
La programación
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Programacion
Programacion Programacion
Programacion
 
point
pointpoint
point
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Técnicas de programación
Técnicas de programaciónTécnicas de programación
Técnicas de programación
 
Actividad 7
Actividad 7Actividad 7
Actividad 7
 
Unidad 3 margie
Unidad 3 margieUnidad 3 margie
Unidad 3 margie
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
Introduccion programacion
Introduccion programacionIntroduccion programacion
Introduccion programacion
 
Informatik
InformatikInformatik
Informatik
 
Programacion ii capitulo3
Programacion ii capitulo3Programacion ii capitulo3
Programacion ii capitulo3
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
El software 2
El software 2El software 2
El software 2
 

Destacado

Método ideal resolución de problemas
Método ideal resolución de problemasMétodo ideal resolución de problemas
Método ideal resolución de problemasfjesevilla
 
Metodo de los 7 pasos
Metodo de los 7 pasosMetodo de los 7 pasos
Metodo de los 7 pasosmcubero13
 
Método De Solución De Problemas
Método De Solución De ProblemasMétodo De Solución De Problemas
Método De Solución De ProblemasPriscilla Najera
 
Tema 3 metodología para la solución de problemas
Tema 3  metodología para la solución de problemasTema 3  metodología para la solución de problemas
Tema 3 metodología para la solución de problemasLincoln School
 
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASadark
 
Problemas aplicando los pasos de polya.
Problemas aplicando los pasos de polya.Problemas aplicando los pasos de polya.
Problemas aplicando los pasos de polya.Paulette23
 
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIAMETODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIAEmmanuel Castillo Segovia
 
Los 4 pasos para la resolucion de problemas de pólya
Los 4 pasos para la resolucion de problemas de pólyaLos 4 pasos para la resolucion de problemas de pólya
Los 4 pasos para la resolucion de problemas de pólyamanueloyarzun
 
LA RESOLUCIÓN DE PROBLEMAS
LA RESOLUCIÓN DE PROBLEMASLA RESOLUCIÓN DE PROBLEMAS
LA RESOLUCIÓN DE PROBLEMASadrixmusic
 
Metodos para resolver problemas polya
Metodos para resolver problemas polyaMetodos para resolver problemas polya
Metodos para resolver problemas polyaAna Lilia Almeida
 
Solucion de Problemas y Toma de decisiones
Solucion de Problemas y Toma de decisionesSolucion de Problemas y Toma de decisiones
Solucion de Problemas y Toma de decisionesTania Pineda
 
Toma De Decisiones
Toma De DecisionesToma De Decisiones
Toma De DecisionesHugo Méndez
 

Destacado (15)

Técnica para resolver problemas en el ambito laboral
Técnica para resolver problemas en el ambito laboralTécnica para resolver problemas en el ambito laboral
Técnica para resolver problemas en el ambito laboral
 
Método ideal resolución de problemas
Método ideal resolución de problemasMétodo ideal resolución de problemas
Método ideal resolución de problemas
 
Metodo de los 7 pasos
Metodo de los 7 pasosMetodo de los 7 pasos
Metodo de los 7 pasos
 
Método De Solución De Problemas
Método De Solución De ProblemasMétodo De Solución De Problemas
Método De Solución De Problemas
 
Tema 3 metodología para la solución de problemas
Tema 3  metodología para la solución de problemasTema 3  metodología para la solución de problemas
Tema 3 metodología para la solución de problemas
 
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMASMETODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS
 
Problemas aplicando los pasos de polya.
Problemas aplicando los pasos de polya.Problemas aplicando los pasos de polya.
Problemas aplicando los pasos de polya.
 
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIAMETODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
METODO DE SOLUCION DE PROBLEMAS EN INGENIERIA
 
Los 4 pasos para la resolucion de problemas de pólya
Los 4 pasos para la resolucion de problemas de pólyaLos 4 pasos para la resolucion de problemas de pólya
Los 4 pasos para la resolucion de problemas de pólya
 
Solución de problemas
Solución de problemasSolución de problemas
Solución de problemas
 
Toma de Decisiones
Toma de DecisionesToma de Decisiones
Toma de Decisiones
 
LA RESOLUCIÓN DE PROBLEMAS
LA RESOLUCIÓN DE PROBLEMASLA RESOLUCIÓN DE PROBLEMAS
LA RESOLUCIÓN DE PROBLEMAS
 
Metodos para resolver problemas polya
Metodos para resolver problemas polyaMetodos para resolver problemas polya
Metodos para resolver problemas polya
 
Solucion de Problemas y Toma de decisiones
Solucion de Problemas y Toma de decisionesSolucion de Problemas y Toma de decisiones
Solucion de Problemas y Toma de decisiones
 
Toma De Decisiones
Toma De DecisionesToma De Decisiones
Toma De Decisiones
 

Similar a Tema vi

Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxDavidGarca147527
 
Concepto de programacion laboratorio 2
Concepto de programacion laboratorio 2Concepto de programacion laboratorio 2
Concepto de programacion laboratorio 2Arcelia Viagra
 
4 5 Ingenieria De Software
4 5 Ingenieria De Software4 5 Ingenieria De Software
4 5 Ingenieria De SoftwareUVM
 
El estudiante identifica en forma individual n recopila información sobre con...
El estudiante identifica en forma individual n recopila información sobre con...El estudiante identifica en forma individual n recopila información sobre con...
El estudiante identifica en forma individual n recopila información sobre con...Markoos Riveroo
 
El estudiante identifica en forma individual n recopila información sobre con...
El estudiante identifica en forma individual n recopila información sobre con...El estudiante identifica en forma individual n recopila información sobre con...
El estudiante identifica en forma individual n recopila información sobre con...Markoos Riveroo
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmascritina26
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmasSergio Naspiran
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas94daniel
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmassergiio27
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmasdianis22
 
Principios de paradigmas(2)
Principios de paradigmas(2)Principios de paradigmas(2)
Principios de paradigmas(2)dianis22
 
Principios de paradigmas(2)
Principios de paradigmas(2)Principios de paradigmas(2)
Principios de paradigmas(2)dianis22
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmascritina26
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmasdianis22
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmasCAMINSUASTY
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmasdianis22
 

Similar a Tema vi (20)

Programacion
ProgramacionProgramacion
Programacion
 
Actividad 7
Actividad 7Actividad 7
Actividad 7
 
Programación
ProgramaciónProgramación
Programación
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
 
Concepto de programacion laboratorio 2
Concepto de programacion laboratorio 2Concepto de programacion laboratorio 2
Concepto de programacion laboratorio 2
 
4 5 Ingenieria De Software
4 5 Ingenieria De Software4 5 Ingenieria De Software
4 5 Ingenieria De Software
 
El estudiante identifica en forma individual n recopila información sobre con...
El estudiante identifica en forma individual n recopila información sobre con...El estudiante identifica en forma individual n recopila información sobre con...
El estudiante identifica en forma individual n recopila información sobre con...
 
El estudiante identifica en forma individual n recopila información sobre con...
El estudiante identifica en forma individual n recopila información sobre con...El estudiante identifica en forma individual n recopila información sobre con...
El estudiante identifica en forma individual n recopila información sobre con...
 
Actividad 7
Actividad 7Actividad 7
Actividad 7
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas(2)
Principios de paradigmas(2)Principios de paradigmas(2)
Principios de paradigmas(2)
 
Principios de paradigmas(2)
Principios de paradigmas(2)Principios de paradigmas(2)
Principios de paradigmas(2)
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 

Más de Maye Re

Algoritmos
AlgoritmosAlgoritmos
AlgoritmosMaye Re
 
Tema iii
Tema iiiTema iii
Tema iiiMaye Re
 
Tema vi guia de c 2
Tema vi guia de c 2Tema vi guia de c 2
Tema vi guia de c 2Maye Re
 
Tema vi guia de c
Tema vi guia de cTema vi guia de c
Tema vi guia de cMaye Re
 
Tema iii
Tema iiiTema iii
Tema iiiMaye Re
 
Ejercicios
EjerciciosEjercicios
EjerciciosMaye Re
 
Ejercicios diagramadeflujo
Ejercicios diagramadeflujoEjercicios diagramadeflujo
Ejercicios diagramadeflujoMaye Re
 
Repaso tvi
Repaso tviRepaso tvi
Repaso tviMaye Re
 

Más de Maye Re (20)

Tema iv
Tema ivTema iv
Tema iv
 
Tema v
Tema vTema v
Tema v
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Tema iii
Tema iiiTema iii
Tema iii
 
Tema ii
Tema iiTema ii
Tema ii
 
Tema ii
Tema iiTema ii
Tema ii
 
Tema i
Tema iTema i
Tema i
 
Tema vi guia de c 2
Tema vi guia de c 2Tema vi guia de c 2
Tema vi guia de c 2
 
Tema vi guia de c
Tema vi guia de cTema vi guia de c
Tema vi guia de c
 
Tema v
Tema vTema v
Tema v
 
Tema iv
Tema ivTema iv
Tema iv
 
Tema iii
Tema iiiTema iii
Tema iii
 
Tema ii
Tema iiTema ii
Tema ii
 
Tema i
Tema iTema i
Tema i
 
Serie2
Serie2Serie2
Serie2
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Ejercicios diagramadeflujo
Ejercicios diagramadeflujoEjercicios diagramadeflujo
Ejercicios diagramadeflujo
 
Repaso tvi
Repaso tviRepaso tvi
Repaso tvi
 
Tema v
Tema vTema v
Tema v
 
Tema iv
Tema ivTema iv
Tema iv
 

Tema vi

  • 1. Tema VI. Diseño de programas para la resolución de problemas de ingeniería Objetivo: El alumno aplicará el método de Diseño de Programas en la elaboración de programas que resuelvan problemas básicos de ingeniería.
  • 2. 6.1 Teoría del diseño de programas Programación Cuando se está construyendo software, una de las fases más importantes, y en la que se invierte más tiempo, es la fase de desarrollo en la que se utilizan lenguajes y técnicas de programación para escribir el programa que resuelve el problema
  • 3. 6.1 Teoría del diseño de programas Paradigmas de programación La evolución de los lenguajes de programación ha ido paralela a la idea de paradigma de programación: enfoques alternativos a los procesos de programación. En realidad un paradigma de programación representa fundamentalmente enfoques diferentes para la construcción de soluciones a problemas y por consiguiente afectan al proceso completo de desarrollo de software.
  • 4. 6.1 Teoría del diseño de programas Existen ciertas características que un programa debe cumplir:  Fiable: debe funcionar correctamente y sin fallos  Adaptable: fácil de incorporar en otros sistemas con modificaciones mínimas  Reutilizable: total o parcialmente, para reducir costos y reutilizar componentes cuya fiabilidad está comprobada  Mantenible: los programas son construidos por muchas personas agrupadas en equipos de trabajo
  • 5. Tipos de programación Existen diferentes técnicas de programación que se pueden ordenar según su complejidad. Debido a esta complejidad, el aprendizaje debería seguir el siguiente orden propuesto. 6.1 Teoría del diseño de programas
  • 6. 6.1 Teoría del diseño de programas Programación Convencional Es el primer programa realizado por alguien que empieza a programar, será un único “programa principal” constituido por una serie de comandos o instrucciones escritos secuencialmente. Programación Modular Da un paso más a la estructuración de un programa agrupando partes del mismo en módulos de una funcionalidad similar. Programación orientada a objetos Resuelve algunos de los problemas que surgen con la programación modular y estructurada.
  • 7. 6.1 Teoría del diseño de programas Programación Estructurada Cuando los programas se vuelven más grandes, cosa que lógicamente sucede cuando aumenta la complejidad del problema a resolver, la lista de instrucciones aumenta considerablemente , de modo tal que el programador tiene muchas dificultades para controlar ese gran número de instrucciones. Para resolver este problema los programas se descompusieron en unidades mas pequeñas que adoptaron el nombre de funciones (procedimientos, subprogramas o subrutinas)
  • 8. 6.1 Teoría del diseño de programas Fases en la resolución de problemas El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es –esencialmente– un proceso creativo, se puede considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores. Las fases de resolución de un problema con computadora son:  Análisis del problema  Diseño del algoritmo  Codificación  Compilación y ejecución  Verificación  Depuración  Mantenimiento  Documentación
  • 9. Análisis El problema se analiza teniendo presente la especificación de los requisitos dados por el cliente de la empresa o por la persona que encarga el programa. Diseño Una vez analizado el problema, se diseña una solución que conducirá a un algoritmo que resuelva el problema. Codificación La solución se escribe en la sintaxis del lenguaje de alto nivel y se obtiene un programa fuente que se compila a continuación. 6.1 Teoría del diseño de programas
  • 10. 6.1 Teoría del diseño de programas Ejecución, verificación y depuración EL programa se ejecuta, se comprueba rigurosamente y se eliminan todos los errores que puedan aparecer. Mantenimiento El programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de sus usuarios. Documentación Escritura de las diferentes fases del ciclo de vida del software, esencialmente el análisis, diseño y codificación, unidos a manuales de usuario y de referencia, así como normas para el mantenimiento.
  • 11. Calidad Las sentencias de un programa, también llamadas código del programa o código fuente, pueden ser leídas por muchas personas a lo largo de su ciclo de vida, por tanto es fundamental que estén bien redactadas, con un estilo determinado para que su significado sea claro y no lleve a ambigüedades. 6.1 Teoría del diseño de programas
  • 12. Documentación La documentación ayudará a comprender un programa para así saber utilizarlo y poder realizar futuras modificaciones. 6.1 Teoría del diseño de programas
  • 13. 6.1 Teoría del diseño de programas Interna Manual de usuario Externa Son los comentarios o aclaraciones que van junto al código fuente para clarificar los pasos seguidos en un programa. Es un documento donde se define: la descripción del problema, nombre del autor, el algoritmo utilizado para la resolución del problema, expresado en pseudocódigo o diagrama de flujo, el diccionario de datos, en el que se especifica dónde y cómo se almacenan los datos del sistema y los lugares donde se utilizan, el código fuente o programa. Describe los pasos que debe seguir el usuario para utilizar el programa y conseguir los resultados esperados.
  • 14. Lenguaje C Dennis Ritchie inventó y escribió el primer compilador para el lenguaje C en un DEC PDP-11 Variantes de C  Turbo C  C++  Visual C++  C# 6.2 Vinculación del diseño de programas al conocimiento algorítmico
  • 15. 6.2 Vinculación del diseño de programas al conocimiento algorítmico Historia del Lenguaje C La historia del lenguaje C comienza a finales de los años 60 en los Laboratorios Bell propiedad de la empresa americana AT&T. Uno de los proyectos que ahí se desarrollaban era la escritura de un sistema operativo con características multitarea y multiproceso llamado UNIX. La primera versión del lenguaje de programación creado para desarrollar el SO UNIX fue el lenguaje B, escrito por Ken Thompson. En 1972, Dennis Ritchie, toma el relevo y realiza algunas modificaciones en el lenguaje B, convirtiéndose en el lenguaje C. Ese mismo año, se reescribe el código de UNIX en lenguaje C y, a partir de 1973, se convierte en el lenguaje oficial de UNIX.
  • 16. 6.2 Vinculación del diseño de programas al conocimiento algorítmico Características del Lenguaje C En definitiva, el lenguaje C tiene las siguientes características: Portabilidad Código binario altamente optimizado Lenguaje general y pensado para la programación estructurada
  • 17. La función main( ) El lenguaje C está basado en el concepto de funciones. Un programa C es una colección de una o más funciones, en donde cada una tiene un nombre y una lista de argumentos. 6.2 Vinculación del diseño de programas al conocimiento algorítmico
  • 18. Estructura general de un programa C: Directivas para el procesador  Archivos include  Constantes define Declaraciones globales  Declaraciones de funciones  Declaraciones de variables globales Función principal main()  Declaración de variables locales Finalización del programa exit(()  Sentencias ejecutables Funciones  Cabecera de la función Sentencias Ejecutables  Declaración de variables locales Sentencia de salida de la función: return 6.2 Vinculación del diseño de programas al conocimiento algorítmico
  • 19. Ejemplo: Escribir un programa que imprima las palabras “¡Hola mundo!” en el dispositivo de salida. /*Programa saludo*/ #include <stdio.h> void main(void) { printf(“n ¡Hola mundo!”); } 6.2 Vinculación del diseño de programas al conocimiento algorítmico
  • 20. 6.2 Vinculación del diseño de programas al conocimiento algorítmico Observaciones /* */ son símbolos que engloban a los comentarios de un programa escrito en C. main() es el nombre de la función que en este momento no requiere ningún tipo de parámetros de entrada y salida. { } delimitan el alcance de la función printf() es una función llamada por main() a la cual se le pasa el parámetro “n ¡Hola mundo!” n Indica un salto de línea
  • 21. 6.2 Vinculación del diseño de programas al conocimiento algorítmico Observaciones “void” indica al compilador que la función no retornará un valor al terminar de ejecutarse y que tampoco requiere de un argumento de entrada La directiva #include indica que se hará uso de la lista de encabezados que se encuentran en el archivo descrito entre < > Directivas para el preprocesador Las directivas para el preprocesador aparecen siempre al comienzo de los programas. Se identifican por su primer carácter, que es el carácter almohadilla (#). Estas directivas le indican al compilador que incluya en el código fuente, el código fuente contenido en los archivos dentro de ‘<‘ y ‘>’
  • 22. …Recordatorio Aprender a programar es semejante a aprender a conducir, solamente se logra frente a la computadora. 6.2 Vinculación del diseño de programas al conocimiento algorítmico
  • 23. Rangos mínimos para los tipos de datos en lenguaje C 6.2 Vinculación del diseño de programas al conocimiento algorítmico
  • 24. Precisión de los tipos de datos 6.2 Vinculación del diseño de programas al conocimiento algorítmico
  • 25. Formato de un programa en C Después de presentar la estructura de un programa en C mediante un ejemplo real, donde se observa la manera que tienen los diferentes elementos del lenguaje de encajar en el programa, es necesario, al igual que en cualquier otro lenguaje de programación, llevar a cabo un análisis pormenorizado de dichos elementos. Éstos, combinándolos de forma apropiada, no permitirán elaborar los programas deseados. 6.2 Vinculación del diseño de programas al conocimiento algorítmico
  • 26. El conjunto de caracteres de C Del mismo modo que en nuestro lenguaje habitual utilizamos un conjunto de caracteres para construir instrucciones que tengan significado, los programas que se realicen en C se escriben utilizando un conjunto de caracteres formado por:  Las 26 letras minúsculas del alfabeto inglés ( a b c d e f g h i j k l m n o p q r s t u v w x y z)  Las 26 letras mayúsculas (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)  Los 10 dígitos (1 2 3 4 5 6 7 8 9 0)  Los símbolos especiales (@ ^ { } [ ] ( ) & $ % # ~ ‘ “ / ? ; : _ . , = / * - +)  El espacio en blanco o barra espaciadora 6.2 Vinculación del diseño de programas al conocimiento algorítmico
  • 27. Identificadores Los identificadores son los nombres que utilizamos para representar los diferentes elementos de nuestro programa (tipos de datos, constantes, variables, funciones y etiquetas). Los identificadores se crean especificándolos en las declaraciones, de este modo, se puede utilizar dicho identificador en las sentencias posteriores del programa para referirnos al elementos asociado a él. 6.3 Características básicas de un programa en lenguaje C
  • 28. Sentencias de Control En muchas ocasiones, los programas requieren que un conjunto de instrucciones se ejecute de forma repetida hasta que se cumpla una condición. En otras ocasiones, los programas requieren que se realice un test o comprobación lógica en algún punto concreto, realizándose a continuación alguna acción que dependerá del resultado de la comprobación. Todas estas operaciones se pueden realizar mediante las sentencias de control de C. 6.4 Elementos y estructuras del lenguaje C en el diseño de programas
  • 29. Clasificación de las sentencias de control 6.4 Elementos y estructuras del lenguaje C en el diseño de programas
  • 30. Elabore un programa que resuelva el área de un triángulo (la base y la altura son valores fijos) 6.4 Elementos y estructuras del lenguaje C en el diseño de programas
  • 31. Sentencia IF/ELSE Su forma básica sería la siguiente: If (expresión) sentencia; En esta sentencia se evalúa expresión. Si el resultado es verdadero, se ejecuta sentencia; si el resultado es falso, se salta a sentencia y se prosigue en la línea siguiente. Hay que recordar que sentencia puede ser una sentencia simple o un conjunto de sentencias (en caso de que fueran varias deberían ir contenidas en bloque entre llaves {…}) 6.4 Elementos y estructuras del lenguaje C en el diseño de programas
  • 32. 6.4 Elementos y estructuras del lenguaje C en el diseño de programas Sentencia SWITCH En este caso se evalúa una expresión (condición) y dependiendo del valor que devuelva, que pueden ser múltiples valores, se ejecutará un bloque de sentencias y otro. En el caso de la sentencia if/else, se evaluaba una condición y sólo podían ejecutarse dos bloques de sentencias dependiendo de si esa condición se cumplía o no. La forma general de switch es la siguiente:
  • 33. Sentencia WHILE (Iteración) Esta sentencia se considera una sentencia de tipo bucle que permite repetir una serie de veces la ejecución de un bloque de código. Esta repetición se realiza hasta que se cumpla una determinada condición de tipo lógico o aritmético. En su forma general seria: 6.4 Elementos y estructuras del lenguaje C en el diseño de programas
  • 34. Sentencia DO..WHILE (Iteración) Se considera una sentencia de tipo bucle que se comporta exactamente igual que la sentencia while, con la diferencia de que dicha evaluación se realiza al final de cada pasada en lugar de al principio, por lo que se asegura que, al menos, se ejecutará una vez el bloque de sentencias. Su forma general es la siguiente: 6.4 Elementos y estructuras del lenguaje C en el diseño de programas
  • 35. Sentencia FOR (Iteración) La sentencia de control for permite repetir una serie de veces la ejecución de un bloque de código. La ventaja de la sentencia for sobre while está en que en la cabecera de la construcción for se tiene toda la información sobre cómo se inicializan, controlan y actualizan las variables de bucle. La evaluación de la condición se realiza al principio de la ejecución. La forma general de esta sentencia es la siguiente: 6.4 Elementos y estructuras del lenguaje C en el diseño de programas
  • 36. Arreglos Unidimensionales Un arreglo es una colección de variables del mismo tipo, con el mismo nombre, y que se diferencian unos de otros a través de un subíndice. La forma general de un arreglo es: Tipo Nombre_Variable[Número_de_elementos] Cuando el compilador encuentra una declaración de tipo para un arreglo, reserva una cantidad de espacio suficiente en la memoria para poder contenerlo. Todo el arreglo es asignado en localidades contiguas de memoria. 6.5 Elaboración de programas básicos de ingeniería
  • 37. 6.5 Elaboración de programas básicos de ingeniería
  • 38. Ejemplo: Hacer un programa que lea una cadena y una letra desde el teclado. El programa debe indicar si la letra se encuentra presente en la cadena o no. Digite una cadena HOLA CHICOS LISTOS Digite una letra C 6.5 Elaboración de programas básicos de ingeniería
  • 39. #include <stdio.h> #include <string.h> void main(void) { char szCadena[80]; char cLetra; int lExisteLetra; int iContador; int iLongCadena; /*Lectura de la cadena*/ printf("nDigite una cadena: "); gets(szCadena); /*Lectura de la letra*/ printf("Digite una letra: "); scanf("%c",&cLetra); 6.5 Elaboración de programas básicos de ingeniería
  • 40. /*Preparacion de los contadores */ iLongCadena=strlen(szCadena); iContador=0; /* No existe la letra por omision */ lExisteLetra=0; /* Mientras no se llegue al fin de cadena y no se encuentre la letra*/ while(iContador < iLongCadena && !lExisteLetra) { /* verificar si existe la letra */ if (szCadena[iContador] == cLetra) lExisteLetra=1; iContador++; } if (lExisteLetra) printf("nLa letra %c si existe en la cadenan",cLetra); else printf("nLa letra %c no existe en la cadenan",cLetra); } 6.5 Elaboración de programas básicos de ingeniería
  • 41. 6.5 Elaboración de programas básicos de ingeniería
  • 42. 6.5 Elaboración de programas básicos de ingeniería Hacer un programa que lea una cadena y determine cuántas palabras existen en ella.
  • 43. 6.5 Elaboración de programas básicos de ingeniería  
  • 44. 6.5 Elaboración de programas básicos de ingeniería  
  • 45. Arreglos Bidimensionales Un arreglo bidimensional es una colección finita, homogénea y ordenada de datos, en la que se hace referencia a cada elemento del arreglo por medio de dos índices. El primero de los índices se utiliza para indicar la fila, y el segundo, para indicar la columna. 6.5 Elaboración de programas básicos de ingeniería
  • 46. Arreglos Multidimensionales Un arreglo puede tener más de una dimensión, de tal manera que forme matrices de dos, tres o aun más dimensiones. Tipo nombre_arreglo[d1][d2][d3]…. [dn] Donde dn es la longitud del arreglo en la n-ésima dimensión. 6.5 Elaboración de programas básicos de ingeniería
  • 47. 6.5 Elaboración de programas básicos de ingeniería
  • 48. 6.5 Elaboración de programas básicos de ingeniería
  • 49. 6.5 Elaboración de programas básicos de ingeniería
  • 50. 6.5 Elaboración de programas básicos de ingeniería
  • 51. 6.5 Elaboración de programas básicos de ingeniería Funciones ¿Qué es una función? Secuencias de operaciones que se utilizarán en varios puntos de un programa y que permitirán reutilizar dicha secuencia de operaciones mediante una llamada a la misma a través del nombre que se le dé a la función. Hay dos tipos de funciones, las funciones propias de librerías de C y las definidas por el programador.
  • 52. 6.5 Elaboración de programas básicos de ingeniería Diseño modular de programas En “fragmentos” independientes es más fácil de programar. El “programa principal” será más fácil de leer, porque no necesitará contener todos los detalles de cómo se hace cada cosa. Podremos repartir el trabajo, para que cada persona se encargue de realizar un “trozo de programa”, y finalmente se integrará el trabajo individual de cada persona.
  • 53. 6.5 Elaboración de programas básicos de ingeniería Esos “fragmentos” de programa son lo que se suele llamar “subrutinas”, “procedimientos” o “funciones”. En el lenguaje C, el nombre que más se usa es el de funciones.
  • 54. 6.5 Elaboración de programas básicos de ingeniería Declaración La forma básica de definir una función es:  indicar el nombre de la función  seguido de unos paréntesis, como se hace con “main”.  después, entre llaves indicaremos todos los pasos que queremos que dé ese “fragmento de programa”. saludar() { printf("Bienvenido al programan"); printf("de ejemplon"); printf("Bienvenido al programan"); }
  • 55. Ahora desde dentro del cuerpo del programa, es posible “llamar” o “utilizar” a esa función: main() { … saludar(); … } 6.5 Elaboración de programas básicos de ingeniería
  • 56. 6.5 Elaboración de programas básicos de ingeniería Parámetros de una función Si nos interesa además indicarle a nuestra función ciertos datos especiales con los que queremos que trabaje. Por ejemplo, si escribimos en pantalla números reales con frecuencia, puede resultar útil que los muestre con el formato que nos interese. Lo podríamos hacer así: escribeNumeroReal( float n ){ printf("%4.2f", n); }
  • 57. La función se llamaría desde el cuerpo de nuestro programa así: float x; main() { x= 5.1; printf("El primer numero real es: "); escribeNumeroReal(x); printf(" y otro distinto es: "); escribeNumeroReal(2.3); } Los datos adicionales que indicamos a la función es lo que llamaremos “parámetros”. 6.5 Elaboración de programas básicos de ingeniería
  • 58. 6.5 Elaboración de programas básicos de ingeniería Valor devuelto por una función También es posible que la función realice una serie de cálculos y nos “devuelva” el resultado de esos cálculos main() { int resultado, numero= 5; resultado = cuadrado(numero); printf(“El cuadrado del numero es %d“, resultado); printf(“nY el de 3 es %d", cuadrado(3)); } int cuadrado (int n) { return n*n; }
  • 59. 6.5 Elaboración de programas básicos de ingeniería Variables locales y Variables globales Las variables se pueden declarar dentro de un bloque (una función), y entonces sólo ese bloque las conocerá, no se podrán usar desde ningún otro bloque del programa. Es lo que se llaman “variables locales”. Si se declara una variable al comienzo del programa, fuera de todos los “bloques” de programa, será una “variable global”, a la que se podrá acceder desde cualquier parte.
  • 60. #include<stdio.h> void hola(void){ printf(“nnEsta es la función hola”); printf(“n *** Hola Amigos ***”); } void adios(void){ printf(“nnEsta es la función adios”); printf(“n *** Adios Amigos ***”); } void main(void){ printf(“nEste es el programa principal”); printf(“nRealiza la llamada a la función HOLA”); hola(); printf(“nRealiza la llamada a la función ADIOS”); adios(); printf(“nnFin del programa.n Fin de programa principal”); } 6.5 Elaboración de programas básicos de ingeniería
  • 61. 6.5 Elaboración de programas básicos de ingeniería Este es el programa principal Realiza la llamada a la función HOLA Esta es la función hola *** Hola amigos *** Realiza la llamada a la función ADIOS Esta es la función adiós *** Adiós amigos *** Fin de programa. En el programa principal
  • 62. 6.5 Elaboración de programas básicos de ingeniería
  • 63. 6.5 Elaboración de programas básicos de ingeniería
  • 64. 6.5 Elaboración de programas básicos de ingeniería