Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
Contenido
................................................................................................................................................................... 2
1.1 Clasificación del Software ................................................................................................................................................................................... 2
1.2 Definiciones ........................................................................................................................................................................................................3
1.3 Análisis de problemas ......................................................................................................................................................................................... 4
1.4 Representación de algoritmos: Gráfica y Pseudocódigo .......................................................................................................................................5
1.5 Diseño de algoritmos aplicados a problemas ...................................................................................................................................................... 14
1.6 Diseño algorítmico de funciones ........................................................................................................................................................................ 17
................................................................................................................................................................... 20
2.1 Características del lenguaje de Programación ................................................................................................................................................... 20
2.2 Estructura básica de un programa ..................................................................................................................................................................... 21
2.3 Traducción de un programa: compilación, enlace de un programa, errores en tiempo de compilación ................................................................ 21
2.4 Ejecución de un programa ................................................................................................................................................................................ 22
2.5 Elementos del lenguaje: datos, literales y constantes, identificadores, variables, parámetros, operadores, entrada y salida de datos ................ 22
2.6 Errores en tiempo de ejecución ........................................................................................................................................................................ 26
............................................................................................................................................................................................ 28
3.1 Estructuras secuenciales ................................................................................................................................................................................... 28
3.2 Estructuras selectivas: simple, doble y múltiple................................................................................................................................................. 29
3.3 Estructuras iterativas: for, while, do-while ......................................................................................................................................................... 32
3.4 Diseño e implementación de funciones .............................................................................................................................................................. 34
................................................................................................................................................................... 37
4.1 Unidimensionales: conceptos básicos, operaciones y aplicaciones. .................................................................................................................... 37
4.2 Multidimensionales: conceptos básicos, operaciones y aplicaciones. ................................................................................................................ 40
4.3 Aplicaciones en programas. .............................................................................................................................................................................. 42
....................................................................................................................................................................................................... 46
5.1 Diferencia entre funciones y procedimientos .................................................................................................................................................... 46
5.2 Activación/invocación de Funciones y Procedimientos. ...................................................................................................................................... 47
5.3 Uso de Funciones y Procedimientos con parámetros. ........................................................................................................................................ 49
REFERENCIAS ............................................................................................................................................................................................................ 53
ANEXOS ....................................................................................................................................................................................................................54
Anexo 1 Vínculo para accesar al Video Tema 1 Diseño de Algoritmos en PSeInt ......................................................................................................54
Anexo 2 Solución de ejercicios propuestos del tema 1 de Algoritmos.......................................................................................................................54
Anexo 3 Vínculo para accesar al Video Tema 2 Introducir al tema de desarrollo de programas DevC++ ...................................................................65
Anexo 4 Solución de ejercicios propuestos del tema 2 Introducción a la Programación ...........................................................................................65
Anexo 5 Solución de ejercicios propuestos del tema 3 Control de Flujo ................................................................................................................. 69
Anexo 6 Caso práctico de Aplicación de Estructuras de Control ............................................................................................................................. 80
Anexo 7 Solución de un problema real que incluye arreglos – Proyecto Integral ...................................................................................................... 84
Anexo 8 Vínculo para accesar al Video Tema 4 Diseño de un programa con Arreglos ............................................................................................. 94
Anexo 9 Vínculo para accesar al Video Ejemplo de un programa con Arreglos en lenguaje C .................................................................................. 94
Anexo 10 Solución de un problema real que incluye funciones, punteros y archivos – Proyecto Integral .................................................................95
Índice de Figuras
FIGURA 1 TIPOS DE SOFTWARE .................................................................................................................................................................... 2
FIGURA 2 ALGORITMOS EN INFORMÁTICA .......................................................................................................................................................3
FIGURA 3 EJEMPLO DE ERROR EN DF ..............................................................................................................................................................7
FIGURA 4 EJEMPLO DE ERROR EN FLUJO DE DATOS ...........................................................................................................................................7
FIGURA 5 PSEUDOCÓDIGO VS DIAGRAMA DE FLUJO ........................................................................................................................................ 11
FIGURA 6 REPRESENTACIÓN GRÁFICA DE UN ARREGLO UNIDIMENSIONAL ...........................................................................................................38
FIGURA 7 REPRESENTACIÓN GRÁFICA DE UN ARREGLO BIDIMENSIONAL ............................................................................................................. 40
del Software
actividades o procesos cotidianos que de cierto lenguaje de máquina.
modo han mejorado nuestra calidad de vida y que
seguramente lo seguirán haciendo. En la figura 1 Intérpretes: software que "traduce" los diferentes
podemos ver algunos ejemplos de los diferentes lenguajes de programación, recibe un programa
El avance tecnológico es un proceso evolutivo de tipos de software. en lenguaje de alto nivel, lo analiza y lo ejecuta.
creación de herramientas que modelan y
controlan el entorno, permitiendo hacer a través Editores de texto: crean y modifican archivos de
Tipos de software
de ellos una gran cantidad de actividades que texto, lenguaje de programación o código fuente.
Existen diferentes tipos de software, de acuerdo
anteriormente eran inimaginables, los cuales no
con sus funciones. A continuación, se describe
se deben solamente a los dispositivos como
cada uno de ellos:
computadoras, tabletas, celulares, máquinas,
etc. sino a una herramienta encargada de darles
Software de sistema
vida y funcionalidad especifica, el software.
Es el programa responsable de la ejecución de
todas las aplicaciones necesarias para que un
Qué es Software: sistema opere correctamente. Suele confundirse
El software es la parte intangible de todos los con el sistema operativo pero va más allá, hace
dispositivos, es un término informático que hace referencia a los programas preinstalados en las
referencia a un conjunto de comandos o computadoras o dispositivos móviles que dan
instrucciones que dan órdenes y se encargan del soporte a otros programas para facilitar su
completo funcionamiento de estos. Sin el función y tener el control del hardware.
software las computadoras, tabletas, celulares,
máquinas y otros dispositivos no tendrían vida. Software de programación
Son todas las herramientas que permiten el
En cualquiera de sus tipos (de sistema, aplicación desarrollo de nuevo software. Por ello, no suelen
o programación) en conjunto con el hardware (la ser utilizadas por el usuario final sino por los Figura 1 Tipos de Software
parte tangible de un dispositivo o máquina) nos programadores. Incluye, por mencionar los más http://dis.um.es/~lopezquesada/documentos/IES_1718/LMSGI/curso/UT4
han ayudado con el avance de la comunicación en importantes, los siguientes: /xhtml/xhtml17/imagenes/o.jpg
1.2 Definiciones
Algoritmo
Los algoritmos no son algo exclusivo de los
ámbitos computacionales o lógicos, utilizamos
numerosos algoritmos para resolver problemas
en nuestra vida cotidiana, o realizar ciertas
actividades habituales como cocinar.
Programación Programación procedimental: Este paradigma de
“Se denomina algoritmo al conjunto de pasos La programación es el proceso de creación de programación consiste en basarse en un número
ordenados y finitos que permiten resolver un programas informáticos. La idea principal es muy bajo de expresiones repetidas, englobarlas
problema o tarea específica” Corona, M. y crear un algoritmo y traducirlo a un lenguaje de todas en un procedimiento o función y llamarlo
Ancona M. (2011). programación. cada vez que tenga que ejecutarse.
Para que un algoritmo sea útil, debe ayudarnos a Programación modular: consiste en dividir un
encontrar una solución a un problema específico.
Paradigmas de programación
Un paradigma de programación es una manera o programa en módulos o subprogramas con el fin
Para que eso suceda, un algoritmo debe de hacerlo más manejable y legible. Se trata de
estilo de programación de software. Existen
satisfacer cinco características descritas en la una evolución de la programación estructurada
diferentes formas de diseñar un lenguaje de
figura 2. para resolver problemas de programación más
programación y varios modos de trabajar para
obtener los resultados que necesitan los complejos.
Lenguaje de programación programadores para resolver problemas
Paradigma declarativo
“Expresión de un algoritmo en un lenguaje computacionales.
Este paradigma no necesita definir algoritmos
preciso que puede llegar a entender una
Algunos de los paradigmas de la programación puesto que describe el problema en lugar de
computadora” Corona, M. y Ancona M. (2011).
más relevantes son: encontrar una solución al mismo. Este paradigma
utiliza el principio del razonamiento lógico para
De hecho, un lenguaje de programación es un
responder a las preguntas o cuestiones
conjunto de reglas para describir comandos y Paradigma imperativo
consultadas.
funciones predefinidas. Cada lenguaje de Los programas consisten en una sucesión de
programación limita al desarrollador a un instrucciones o conjunto de sentencias, como si el
Este paradigma a su vez se divide en dos:
conjunto estrictamente predeterminado de programador diera órdenes concretas. El
Programación Lógica: Prolog
palabras clave y comandos que pueden ser desarrollador describe en el código paso por paso
Programación funcional: Lisp, Scala, Java, Kotlin
utilizados en el desarrollo. Hay varios niveles de todo lo que hará su programa.
lenguajes entre los cuales se distinguen:
Algunos lenguajes: Pascal, COBOL, FORTRAN, C, Programación orientada a objetos
En este modelo de paradigma se construyen
De bajo nivel (ensamblador): trabaja C++, etc.
modelos de objetos que representan
directamente con los comandos del procesador.
Otros enfoques subordinados al paradigma de elementos (objetos) del problema a resolver
y que tienen características y funciones.
De alto nivel (C, C++, Java, etc.): es más como un programación imperativa son:
Permite separar los diferentes componentes
lenguaje ordinario.
Programación estructurada: es un tipo de de un programa, simplificando así su
programación imperativa donde el flujo de creación, depuración y posteriores mejoras.
Programa
1.4 Representación
desarrollo o ejecución del algoritmo, es decir,
representará un valor almacenado en memoria
de algoritmos:
(localidad de memoria), que se puede modificar
en cualquier momento o conservar para ser usado
tantas veces como se desee.
Gráfica y Pseudocódigo
Palabras reservadas
Son palabras propias o ya predefinidas en la
sintaxis de un lenguaje de programación o
pseudocódigo y no puede ser usada como el
nombre de una variable ya que tienen un
significado especial.
Los identificadores, en los lenguajes de Enteros: son aquellos números que no tienen Todas las variables deben ser declaradas antes
programación, son palabras o textos que se fracciones o decimales, pueden ser positivos o de ser usadas. Cada variable por lo tanto tiene
utilizan para nombrar diferentes elementos del negativos (edad de una persona, año de asociado un tipo de dato, un nombre
lenguaje, está formado por una secuencia de nacimiento, número de páginas de un libro etc.) (identificador) y un valor.
caracteres alfabéticos, numéricos y el guion bajo,
con ellos podemos dar nombre a variables, Reales: son los números que contienen Los nombres de variables que se elijan para el
constantes, tipos de datos, etc. decimales y pueden ser positivos o negativos algoritmo deben ser significativos y tener
(promedio final de un alumno, peso de un objeto, relación con el objeto de que representa.
Los nombres de los identificadores deben seguir estatura de una persona, etc.)
unas reglas de sintaxis, establecidas por los
La sintaxis para definir o declarar una variable es:
propios lenguajes de programación, como, por
ejemplo:
Datos carácter :
tipo_dato nombre_variable(s)
1. Debe comenzar con una letra (no números) Cadena: es una sucesión de caracteres que se
mayúsculas o minúsculas y no puede contener encuentran delimitados por comillas (nombre Ejemplos
espacios en blanco. completo de una persona, domicilio, RFC, CURP, entero i,j,k
2. No pueden existir dos identificadores iguales, etc). real promedio
sin embargo, un identificador puede aparecer caracter nombre[25], genero
más de una vez en un algoritmo. Caracteres: es una letra, número o carácter
3. No se puede utilizar una palabra reservada especial mayúscula o minúscula (genero de una
como identificador persona, seleccionar una opción de un menú, Constantes
4. El identificador debe tener un nombre que sea si/no, opción múltiple, etc).
significativo. Es un dato que permanece sin cambio durante el
5. No utilizar nombres muy largos. Datos lógicos o booleanos: desarrollo del algoritmo, es decir valores fijos que
6. El identificador NO puede contener caracteres no pueden ser alterados por el usuario.
Valor que expresa un estado de entre dos,
especiales excepto el “_” guion bajo. La sintaxis para definir o declarar una constante
verdadero o falso.
es:
Tipos de datos nombre_constante = valor
Variables Ejemplos
Los diferentes objetos de información con los que
un algoritmo trabaja se conocen como datos. pi = 3.1416
Ejemplos
Operadores Lógicos (Booleanos):
¿Cuál es el resultado de la expresión?
Tabla 5 Operadores Lógicos
Operadores
Operación a. 6+2*3-4/2
Operador Ejemplo
lógica 6+6-4/2
Un operador es un símbolo que permite
No No lógica no (x>=y) 6+6-2
relacionar dos datos en una expresión y evaluar el
operando_1 y 12-2
resultado de la operación. Los operadores Y m<n y i>j
operando_2 10
fundamentales son:
operando_1 o m=5 o
0
operando_2 n!=10
✓ Aritméticos
✓ Relacionales
✓ Lógicos
✓ Asignación b. 5*5*(5+(6-2)+1)
5*5*(5+4+1)
Los operadores lógicos tabla 5, se utilizan en 5*5*10
expresiones condicionales y mediante 25*10
Operadores Aritméticos: sentencias Si-sino, Mientras o Para. 250
En la tabla 3 se describe cada uno de los
operadores aritméticos, los cuales pueden ser
c. 7-6/3+2*3/2-4/2
utilizados con tipos de datos enteros o reales, el
7-2+2*3/2-4/2
operador % calcula el residuo que queda al dividir 7-2+6/2-4/2
dos números enteros. 7-2+3-4/2
7-2+3-2
5+3-2
Tabla 3 Operadores Aritméticos
8-2
Operador Descripción Ejemplo
6
* Multiplicación (a*b)
/ División (a/b)
+ Suma (a+b) d. 7*10-5 %3*4+9
- Resta (a-b) 70-5 % 3*4+9
Módulo, o residuo de
70-2*4+9
% o mod (a%b) 70-8+9
una división entera
Prioridad (precedencia) de 62+9
71
operadores
Operadores Relacionales: El orden en que la computadora ejecuta las e. (7*(10-5) %3)*4+9
diferentes operaciones, le llamamos orden de (7*5 % 3)*4+9
Estos operadores describen una relación entre prioridad. (35 % 3)*4+9
dos valores, por lo tanto, se usan para expresar 2*4+9
condiciones y comparar dos valores. El resultado ✓ Todas las expresiones entre paréntesis se 8+9
de una expresión relacional como lo observamos evalúan primero. 17
en la tabla 4, es un valor tipo lógico o booleano,
sólo puede ser verdadero o falso. ✓ Las expresiones con paréntesis anidados se
evalúan de adentro hacia afuera.
Diagrama de flujo
Estructura Secuencial
La estructura secuencial es aquella en la que una Ejemplo 2 Modificar el algoritmo anterior para
acción (instrucción) sigue a otra en secuencia. Las que el resultado final sea:
tareas se suceden de tal modo que la salida de
• a toma el valor inicial de b
Características de los diagramas de flujo: una es la entrada de la siguiente y así
sucesivamente hasta el fin del proceso. Una • b toma el valor inicial de c
* Todo diagrama debe tener un inicio y un fin.
estructura secuencial se representa de la • c toma el valor inicial de a
* No se especifica la declaración de variables. siguiente forma: Es decir, si se introducen los valores 1, 2 y 3 para
*Se deben usar solamente líneas de flujo a, b y c respectivamente, la salida por pantalla
horizontales y/o verticales. será: a=2 b=3 c=1
* Se debe evitar el cruce de líneas utilizando los
conectores.
* Se deben usar conectores sólo cuando sea
necesario.
* No deben quedar líneas de flujo sin conectar.
Simple
Estructura Para
Pseudocódigo
Estructura Secuencial
inicio
sentencia 1
sentencia 2
......
sentencia n
fin
inicio
Sintaxis 2 inicio
instruccion 1
Si (condicion) instruccion 2
inicio
…
instruccion 1
instruccion 2 instruccion n
… fin
instruccion n
fin
Ejemplo 11 Elaborar pseudocódigo que calcule y
real a,b,c,x; Se debe tomar en cuenta que cuando existen
despliegue la cantidad de dinero que recibirá un
escribir"Ingresa el valor de a, b y c"; más de una instrucción en una estructura se
trabajador. Si el trabajador, generó horas extras
leer a,b,c; escribirán entre las palabras reservadas inicio y
entonces calcular el sueldo base más las horas
x=(c-b)/a; fin.
extras y si no calcular el sueldo base sin horas
escribir"El resultado de la ecuación de 1er grado extras, sabiendo que cuando las horas de trabajo
de la forma ax + b = c es => ",x; exceden de 40, el resto se consideran horas extras
fin Ejemplo 10 Solicitar la edad del alumno y
y que estas se pagan al doble de una hora normal
desplegar un mensaje si es mayor de edad.
1.5 Diseño de
algoritmos aplicados
Ejemplo 16 Encontrar el menor y mayor valor de Ejemplo 17 Calcular el promedio final de un
un conjunto de n números dados. alumno que tiene 7 calificaciones en la materia de a problemas
Programación básica.
inicio
entero may,men,num,N,numerito; inicio Para poder elaborar un buen programa en
real calif,sum=0, prom; cualquier lenguaje de programación de manera
may=0; eficiente es necesario que previo a esto se diseñe
men=9999; entero unidad; el algoritmo.
escribir"Cuantos números vas a ingresar? "; char nom[25];
leer N; escribir”Nombre del aluno:”; La resolución de un problema exige el diseño de
num=1; leer nom; un algoritmo que resuelva el problema, como lo
unidad=1; muestra la siguiente figura:
mientras(num<=N)
inicio hacer
escribir "Ingresa el número ",num,":"; escribir”Ingresa la calificación “,unidad;
leer numerito; leer calif
sum=sum+calif; Diseño del Programa de
si numerito>may Problema
Algoritmo computadora
may=numerito; unidad=unidad+1
si numerito<men mientras(unidad<=7);
men=numerito; prom=sum/7;
num=num+1; escribir”El promedio final de “,nom,” es :”,prom;
fin fin
Ejemplo 19 Escribir un programa que muestre el
escribir "El mayor valor es ",may; resultado de la ecuación de tercer grado y=ax3 +
escribir "El menor valor es ", men; bx2 +cx + d para un valor de x. Para ello, debe leer
fin Ejemplo 18 Encontrar el menor y mayor valor de el valor de los coeficientes (a, b, c y d) y el valor de
un conjunto de n números dados. x y mostrar por pantalla el resultado de la
evaluación de la ecuación resultante.
inicio
✓ Hacer - Mientras entero may,men,num,N,numerito;
El algoritmo que resuelve este problema debe, en
primer lugar, leer cada uno de los coeficientes del
may=0; polinomio y el valor de x. A continuación, debe
Esta es una estructura similar en algunas men=9999; calcular el valor final del polinomio escribiendo
características, a la anterior, pero esta estructura una expresión que lo represente. Por último,
permite realizar el proceso cuando menos una escribir"Cuantos números vas a ingresar? ";
debe mostrar el valor resultante.
vez, ya que la condición se evalúa al final del leer N;
proceso. num=1;
La forma de esta estructura es la siguiente: - Pseudocódigo –
hacer
escribir "Ingresa el número ",num,":";
Sintaxis Inicio
leer numerito;
funciones principal.
Sintaxis
Función nombre (lista parámetros formales):tipo
Var: declaración de variables
Inicio
Instrucciones
devolver valor
Fin-función
Ejercicios propuestos
2.1 Características programación en el mercado porque esto les Son los más utilizados por los programadores.
reportará más beneficios económicos. Están diseñados para que las personas escriban y
del lenguaje de
entiendan los programas de un modo mucho más
Los principales tipos de lenguajes utilizados en la fácil que los lenguajes máquina y ensamblador.
Lenguaje de Ejemplo
Programación C
Conversión de pulgadas a centímetros.
#include <stdio.h>
C es el lenguaje de programación de propósito #include <conio.h>
general, la popularidad, eficacia y potencia de C, main()
se ha producido porque este lenguaje no está {
prácticamente asociado a ningún sistema float cm; int pulg;
operativo, ni a ninguna máquina, en especial. printf(“Conv. de pulgadas a
Esta es la razón fundamental, por la cual C, es centímetros \n”);
conocido como el lenguaje de programación de printf(“Dame las pulgadas “);
sistemas, por excelencia. Rico en tipo de datos, scanf(“%d”,&pulg);
operadores y variables en C. cm = pulg * 2.54;
printf (“%d pulgadas 5 %7.3f
C nació realmente en 1972, con la publicación de centímetros\n”,pulg,cm);
The C Programming Lenguaje, por Brian }
Kernighan y Dennos Ritchie (Prentice Hall, 1978).
Desde su nacimiento, C fue creciendo en La programación estructurada significa escribir
popularidad y los sucesivos cambios en el
lenguaje a lo largo de los años junto a la creación
de compiladores por grupos no involucrados en
un programa de acuerdo con las siguientes
reglas: 2.3 Traducción de
su diseño, hicieron necesario pensar en la 1. El programa tiene un diseño modular (el un programa:
estandarización de la definición del lenguaje C.
Por ello, y dado que todo programa que se
programa se divide en módulos)
2. Los módulos son diseñados de modo compilación, enlace de
un programa, errores en
desarrolle siguiendo el standard ANSI de C será descendente
fácilmente portable de un modelo de 3. Cada módulo se codifica utilizando las tres
computadora a otro modelo de computadora, y
de igual forma de un modelo de compilador a
estructuras de control básica: secuenciales, tiempo de compilación
selección y repetición.
otro. El lenguaje C posee un número reducido de
palabras reservadas (tan solo 32) que define el Las etapas por las que debe pasar un programa
standard ANSI-C. Estas palabras reservadas escrito en un lenguaje de programación, hasta
pueden verse en la tabla siguiente: poder ser ejecutable son:
Tabla 8 Palabras reservadas en lenguaje C 2.2 Estructura Programa fuente: Programa escrito en un
básica de un lenguaje de alto nivel (texto ordinario que
contiene las sentencias del programa en un
Las librerías son una colección de código El código de salida debe ser correcto y eficiente, 2.5 Elementos del
lenguaje: datos,
(funciones) ya programado y traducido a código es decir, debe utilizar de forma eficaz los recursos
máquina, listo para utilizar en un programa y que de la computadora. Además, el propio generador
facilita la labor del programador. de código debe ejecutarse eficientemente.
literales y constantes,
Errores en tiempo de compilación Los pasos para seguir para la elaboración y
ejecución de un programa, los podemos resumir
identificadores,
Si el programa fuente no tiene errores de sintaxis, de la siguiente manera: variables, parámetros,
el compilador generará el código objeto, en caso
contrario mostrará una lista con los errores 1. Escribir el código fuente, utilizando cualquier operadores, entrada y
encontrados, no generándose ningún programa editor.
objeto, para que procedamos a su depuración. 2. Compilar el archivo fuente
salida de datos
3. Si se producen errores de sintaxis (o warnings)
Los compiladores emiten mensajes de error o de volver al editor y corregir los errores de sintaxis.
advertencia durante las fases de compilación, de 4. Si no hay errores se obtendrá el código objeto Tipos de datos
enlace o de ejecución de un programa: y el enlazador construirá el archivo ejecutable.
5. Una vez que se tiene el archivo ejecutable, será Para hacer uso de variables debemos declararlas
Los errores en tiempo de compilación son los que el sistema operativo el encargado de colocar el previamente con algún tipo de dato,
se producen antes de la ejecución del programa, programa en la memoria central y ejecutarlo. dependiendo del tipo será el espacio que ocupará
durante el proceso de compilación del programa. 6. Comprobar el funcionamiento del programa. en memoria RAM.
7. Si se detecta errores o un mal funcionamiento
Los errores que se pueden producir en la fase de del programa, activar el depurador para trazar el En C existen básicamente cuatro tipos de datos,
compilación son: programa y ejecutarlo sentencia a sentencia. aunque como se verá después, podremos definir
8. Una vez que se encuentra la causa del error, a nuestros propios tipos de datos a partir de estos
− Errores fatales: Son raros. Indican errores través del editor, se corrige. cuatro.
internos del compilador. Cuando ocurre la 9. El proceso de compilar, enlazar y ejecutar el
compilación se detiene inmediatamente. programa lo repetiremos hasta que no se A continuación, en la tabla 9 se detalla su
produzcan errores. nombre, el tamaño que ocupa en memoria y el
− Errores de sintaxis: Son los errores típicos de rango de sus posibles valores. Delgado, H. (2020).
sintaxis. No detienen la compilación, sino que al
finalizar ésta se mostrará la lista con todos los Fase de ejecución de un programa
errores encontrados. Algunos errores suelen ser Tabla 9Tipos de Datos en Lenguaje C
consecuencia de otros cometidos con Una vez que tenemos el programa en lenguaje
anterioridad. Con este tipo de errores no se máquina, para poderlo ejecutar hay que
puede obtener un programa objeto y por lo tanto introducirlo en la memoria.
tampoco el ejecutable.
✓ Una utilidad del sistema operativo llamada
− Advertencias o avisos (warnings): Indican que cargador colocará el programa, y sus datos
hay líneas de código sospechosas que, a pesar de de entrada, en memoria principal,
no infringir ninguna regla sintáctica, el preparándolo para su ejecución.
compilador las encuentra susceptibles de
Los calificadores de tipo tienen la misión de
provocar un error. Cuando se detecta un warning ✓ El sistema operativo le pasa el control a la
modificar el rango de valores de un determinado
la compilación no se detiene. Si en un programa unidad de control de proceso, para que
tipo de variable. Estos calificadores son cuatro:
fuente sólo se detectan warnings, se podrá comience la ejecución del programa,
obtener un programa objeto, que tras el linkado realizando la unidad de control los
dará lugar a un programa ejecutable. siguientes pasos (fases):
Signed
Captación de la instrucción: Lee de la memoria
principal la instrucción a ejecutar.
Le indica a la variable que va a llevar signo, es el
2.4 Ejecución de un
utilizado por defecto.
Ejecución de la instrucción: Interpreta la
instrucción leída y envía señales de control a las
programa unidades que deban intervenir en su ejecución.
Tras dicha ejecución se establece cuál será la
Tabla 10Tipos de datos signed
a*b+c/d-e
a*b resultado = x
c/d resultado = y
x+y resultado = z
z-e
Tiempo de vida de los datos. Según el lugar • Los errores en tiempo de compilación son los
donde son declaradas puede haber dos tipos de que se producen antes de la ejecución del
variables. Estos operadores actúan sobre expresiones programa, durante el proceso de compilación del
lógicas. Permiten unir expresiones lógicas programa.
simples formando otras más complejas
Variables Globales • Los errores en tiempo de ejecución son los que
se producen durante la ejecución del programa.
Tabla 22 Tabla de verdad Son los más difíciles de encontrar, no son
Las variables permanecen activas durante todo el
programa. Se crean al iniciarse éste y se detectados por el compilador, ya que son errores
destruyen de la memoria al finalizar. Pueden ser de lógica, no de sintaxis.
utilizadas en cualquier función.
Con respecto a los errores en tiempo de
ejecución, encontrar la causa que los provoca es
Variables Locales una labor en ocasiones complicada, razón por la
cual los EID (Entornos Integrados de Desarrollo,
Las variables son creadas cuando el programa por ejemplo, DevC++) nos proporcionan una
llega a la función en la que están definidas. Al herramienta llamada depurador que nos ayuda a
finalizar la función desaparecen de la memoria. Ejemplo encontrar los errores lógicos y demás errores
producidos en tiempo de ejecución.
Si dos variables, una global y una local, tienen el
/* Uso de los op. lógicos
mismo nombre, la local prevalecerá sobre la AND,OR,NOT*/ Un depurador (debugger), es un programa
global dentro de la función en que ha sido #include <stdio.h> diseñado específicamente para la detección,
declarada. main() verificación y corrección de errores. Los
/* Compara un número introducido depuradores nos permiten trazar el programa
Dos variables locales pueden tener el mismo */ (ejecutarlo sentencia a sentencia) y visualizar el
nombre siempre que estén declaradas en { contenido de las variables y direcciones de
funciones diferentes. int numero;
printf("Introduce un número: "); memoria durante la ejecución del programa.
scanf("%d",&numero); Además, permiten alterar el flujo de ejecución de
if(!(numero>=0)) este, cambiar los valores de las variables e
printf("El número es negativo"); introducir puntos de parada.
Ejercicios propuestos
a. 15*14-3*7
b. -4*5*2
c. (24+2*6) / 4
d. 3+4* (8*(4-(9+3)/6))
e. 4*3*5+8*4*2-5
f. 4-40/5
g. (-5)%(-2)
0023.72*
0145.14 =
------------
3443.08
Análisis:
#include <stdio.h> El programa que resuelve este problema debe, en
main() primer lugar, leer cada uno de los coeficientes del
{ polinomio y el valor de x.
3.1 Estructuras float precio_neto,precio,margen;
printf("Cual es el precio?");
A continuación, debe calcular el valor final del
polinomio escribiendo una expresión que lo
secuenciales scanf ("%f", &precio);
printf("Cual es el margen?");
represente.
Por último, debe mostrar el valor resultante.
scanf ("%f", &margen);
precio_neto=precio*(100+margen)/100;
Implementación
La estructura secuencial se conoce como una /* Salida de datos */
instrucción que sigue a otra en secuencia, es printf ("El precio neto de este
#include <stdio.h>
decir, la salida de una instrucción es la entrada de producto es de $ %f \n", main()
la siguiente consecuentemente hasta que precio_neto); {
}
termine el proceso. float a, b, c, d, x, y;
/* Lectura de coeficientes */
Es la estructura más sencilla ya que el printf("Evaluación del polinomio
programador identifica los datos de entrada, los y=ax^3 + bx^2 + cx + d.\n");
procesa y muestra o imprime los datos de salida. printf("Valor de los coeficientes
Ejercicio práctico con a, b, c y d:");
La estructura secuencial se puede representar de scanf ("%f%f%f%f",&a,&b,&c,&d);
la siguiente forma: estructura /* Lectura del valor de x */
printf("Introducir el valor de
main() secuencial la variable x:");
{ scanf ("%f", &x);
inst 1; /* Proceso: cálculo del polinomio */
inst 2; y = a*x*x*x + b*x*x + c*x + d;
…… /* Salida */
inst n; Escribir un programa que muestra el resultado de printf("El resultado del
} la ecuación de tercer grado y = ax3 + bx 2 + cx + d polinomio %.2f x^3 + %.2f x^2",
para un valor de x. Para ello, debe leer el valor de a,
los coeficientes (a, b, c y d) y el valor de x y b);
Ejemplo mostrar por pantalla el resultado de la evaluación printf(" + %.2f x + %.2f para
x=%.2f es: %.2f\n",c,d,x,y);
Calcula el precio neto de un producto de una de la ecuación resultante.
}
empresa de venta de refacciones de automóviles
Estructura selectiva simple (if) y doble • Si el lado a y el lado b no son iguales, ya se sabe
(if-else) que el triángulo no puede ser equilátero.
Entonces se debe comprobar si alguno de ellos es
Sintaxis igual al lado c. Si se determina que el lado a o el
lado b son iguales al lado c, entonces el triángulo
if (condición) es isósceles. Si no, todos los lados son distintos
sentencia; entre sí y por tanto el triángulo es escaleno.
else
sentencia; En cuanto al cálculo del área, es necesario
obtener en primer lugar el valor del
semiperímetro p, para utilizarlo en la expresión
Siendo el else opcional. Si la condición es del área. También hay que tener en cuenta que se
verdadera se ejecuta la sentencia asociada al if, debe calcular la raíz cuadrada para obtener el
en caso de que sea falsa la condición se ejecuta la área real del triángulo.
sentencia asociada al else (si existe el else).
Ejercicio práctico con Una vez definidos los datos de entrada y de salida
Veamos algunos ejemplos de sentencias if: y cuál va a ser el proceso a realizar, se diseña un
estructuras selectivas if, algoritmo del funcionamiento del programa:
int a,b;
if… else
1. Leer los lados del triángulo y almacenarlos en
if (a>b)
las variables lado_a, lado_b, y lado_c.
{
b--; 2. Determinar el tipo de triángulo con el siguiente
Diseñar un programa que, dados los lados de un proceso:
a=a+5;
} triángulo a, b y c, indique si es equilátero, a. Si la variable lado_a es igual a la variable
else isósceles o escaleno y que calcule su área lado_b entonces:
{ mediante la fórmula de Herón: ✓ Si la variable lado_a es igual a la
a++; variable lado_c entonces escribir por
b=b-5; A2 = p( p a)( p b)( p c) pantalla que el triángulo es equilátero.
} ✓ Si no, escribir por pantalla que el
if (b-a!=7) 𝑎+𝑏+𝑐 triángulo es isósceles.
donde 𝑝=
b=5; 2
b. Si no:
case 4: res=peso*10000;
printf("\nEquivale a %d
Ejercicio práctico con Decigramos",res);
estructura selectiva break;
case 5: res=peso*100000;
switch printf("\nEquivale a %d
Centigramos",res);
break;
case 6: res=peso*1000000;
Diseñar un programa que convierta de Kg a otra
printf("\nEquivale a %d
unidad de medida de masa, mostrar en pantalla Miligramos",res);
un menú con las opciones posibles. break;
default: printf("Opción no
Análisis 2. Se diseña el menú con la opción de tipo entero, válida! … elije otra Opción");
el cual especifica las diferentes opciones de break;
La unidad principal es el gramo (g), las unidades conversión. }
más pequeñas que el gramo son: decigramo (dg), }
centigramo (cg) y miligramo (mg) y a estas 3. Dependiendo de la opción seleccionado, se
unidades se les llama submúltiplos. ejecuta la operación de la conversión
correspondiente.
1 g = 10 dg | 1 g = 100 cg | 1 g = 1000 mg 4. Se despliega el resultado al final del programa,
fuera de la estructura switch.
Las unidades más grandes que el gramo(g), se
llaman múltiplos y son: decagramo (dag),
hectogramo (hg) y kilogramo (kg): Implementación
#include <stdio.h>
1 dag = 10 g | 1 hg = 100 g | 1 kg = 1000 g #include <stdlib.h>
#include<locale.h>
main()
Por lo tanto si queremos convertir desde una {
unidad que está "separada" de otra, debemos setlocale(LC_ALL, "spanish");
"acumular las operaciones" según sean múltiplos int peso,res,opcion;
o submúltiplos de los gramos ingresados. printf("\n\n\n\tCalculadora de
Conversión");
printf("\n\nIntroduzca peso en
Por ejemplo, para pasar de gramo a centigramo,
kilogramos:");
debemos multiplicar X10 y X10, es decir,
scanf("%d",&peso);
multiplicaremos X100 (1g=100cg, 5g=500cg), printf("1 - Hectogramos\n");
para pasar de gramo a kilógramo, debemos printf("2 - Decagramos\n");
dividir ÷10, ÷10 y ÷10, es decir dividiremos ÷1000 printf("3 - Gramos\n");
(1000g=1kg, 3000g=3kg) printf("4 - Decigramos\n");
printf("5 - Centigramos\n");
Una vez comprendido las diferentes unidades de printf("6 - Miligramos\n");
medida, definimos los datos de entrada y de printf("\nSeleccione Unidad a
salida y cuál va a ser el proceso a realizar, se convertir:");
diseña un algoritmo del funcionamiento del scanf("%d",&opcion);
programa: switch (opcion)
{
case 1: res=peso*10;
1. Se declaran las variables necesarias como peso printf("\nEquivale a %d
y res que serán datos de tipo entero, se guardara Hectogramos",res);
break;
el peso en kilogramos y el resultado de la
case 2: res=peso*100;
operación de la conversión.
printf("\nEquivale a %d
Decagramos",res);
break;
case 3: res=peso*1000;
printf("\nEquivale a %d
Gramos",res);
break;
while, do-while
constituye la base de cualquier proceso de
La estructura for se ejecuta siempre que la producción, por ello es importante identificar
condición sea verdadera, es por ello por lo que rápidamente la causa raíz de los productos
puede llegar a no ejecutarse. defectuosos a través de un programa de control
Las estructuras de repetición son las llamadas de calidad.
estructuras cíclicas, iterativas o de bucles. Algunos ejemplos de la estructura for:
Permiten ejecutar un conjunto de instrucciones Para esto es necesario revisar detenidamente si el
de manera repetida (o cíclica) mientras que la producto tiene algún defecto o si este es perfecto
expresión lógica a evaluar se cumpla (sea int i,suma=0; y contabilizarlos, para lo cual se va a diseñar un
verdadera). for(i=1;i<=100;i++) algoritmo del funcionamiento del programa:
suma=suma+i;
En lenguaje C existen tres estructuras de 1. Se declaran las variables necesarias como
repetición: while, do-while y for. Las estructuras producción (pro), variable de control de la
while y do-while son estructuras repetitivas de estructura for (cont), variable p, que almacenará
int i,j;
propósito general. La estructura de repetición for for(i=0,j=100;j>i;i++,j--) la respuesta de si el producto es defectuoso o es
se utiliza, principalmente, para recorrer arreglos. { perfecto y el contador del productos defectuosos
printf(“%d\n”,j-i); (de) y el contador de productos perfectos (per). Y
Elementos indispensables en las estructuras de printf(“%d\n”,i-j); todas estas variables serán del tipo de dato
repetición: } entero “int”.
Análisis
Estructura iterativa while El análisis es el mismo del ejercicio práctico de la
estructura de repetición for, lo único que cambia
es la implementación, es decir, al utilizar la
La sintaxis de la estructura while es: estructura while para resolver este problema lo
único que va a cambiar es la ubicación de los
valor inicial
elementos de la estructura dentro del programa
while (condición)
{ como tal. Estructura iterativa do-while
sentencia;
… Implementación
incremento o decremento Al contrario que las estructuras for y while que
} /*calidad de los productos*/
comprueban la condición al inicio de la
#include<stdio.h>
estructura, esta comprueba la condición en la
Donde la sentencia puede no existir (sentencia #include<locale.h> parte final de la estructura, lo cual provoca que la
vacía), pero siempre debe existir la condición. La main() estructura do-while se ejecute como mínimo una
{
estructura while se ejecuta mientras la condición vez.
setlocale(LC_ALL, "spanish");
sea verdad. int pro,cont,p,de=0,per=0;
printf("\n\t\tChecar la calidad
Algunos ejemplos de estructuras while: de los productos \n"); La sintaxis de la estructura do-while es:
printf("\nCuantos productos se
elaboraron?\n");
int i=1,suma=0; scanf("%d",&pro); valor inicial
while (i<=100) cont=1; do
{ while(cont<=pro) {
suma=suma+i; { sentencia;
i++; printf("\nEl producto %d, tiene …
} algún defecto? si=1 o=2\n",cont); incremento o decremento
scanf("%d",&p); }
if(p==1) while (condición);
while (getc(stdin)!=‘X’); {
3.4 Diseño e
Implementación
La estructura do-while se ejecuta mientras la
condición sea verdadera. Algunos ejemplos de la #include<stdio.h>
estructura: #include<locale.h>
main()
implementación de
int num;
do
{
setlocale(LC_ALL, "spanish"); funciones
scanf(“%d”,&num); int cant1,cant2,cant3,contpieza;
while (num>100); float peso,suma=0;
cant1=0;
cant2=0; Aunque analizaremos el tema de funciones en
cant3=0; detalle en el tema 5, una breve visión general es
int i,j; útil ahora.
do printf("\n\n\n\tPeso de las
{ piezas de Lineas de producción
scanf(“%d”,&i); ");
contpieza=1; Las funciones en un programa son entidades que
scanf(“%d”,&j); dado un conjunto de datos (los parámetros), se
} do
les encarga realizar una tarea muy concreta y se
while (i<j); {
printf("\n\nIngrese el peso de espera hasta obtener el resultado.
la pieza %d (0 para finalizar
):",contpieza); Lo idóneo es dividir tareas complejas en
scanf("%f",&peso); porciones más simples que se implementan
Ejercicio práctico con suma=suma+peso;
como funciones. La división y agrupación de
estructura iterativa if (peso>=9.8 && peso<=10.2)
tareas en funciones es uno de los aspectos más
cant1++;
do-while if (peso>10.2) importantes en el diseño de un programa.
cant2++;
if (peso<9.8) En lenguaje C a cada módulo o subprograma se le
cant3++;
conoce como función, de manera general, los
Realizar un programa que permita ingresar el contpieza++;
programas se elaboran combinando funciones
peso (en kilogramos) de piezas procesadas en }
que el programador escribe (funciones de
una línea de producción. El proceso termina while(peso!=0); usuario) y funciones “predefinidas” disponibles
cuando ingresamos el valor 0 (cero). Se debe printf("\n %d piezas con un peso
en la biblioteca estándar de C.
informar: entre 9.8 Kg. y 10.2 kg.",cant1);
printf("\n %d piezas con un peso
a) ¿Cuántas piezas tienen un peso entre 9.8 Kg. y de más de 10.2 Kg.",cant2); Las funciones de usuario pueden ser escritas para
10.2 Kg.?, ¿Cuántas con más de 10.2 Kg.? y printf("\n %d piezas con menos realizar tareas repetitivas y para reducir el
¿Cuántas con menos de 9.8 Kg.? de 9.8 Kg.",cant3-1);
tamaño de un programa. Segmentar el código en
b) La cantidad total de piezas procesadas. printf("\n La cantidad total de
funciones permite crear piezas de código que
piezas procesadas son %d"
c) El total de la suma de lo que pesan todas las hacen una determinada tarea y volver al área del
,contpieza-2);
piezas. printf(“\nLa suma total del peso código desde la que han sido llamadas. Corona,
de las %d piezas es : %.2f kgs”, M. y Ancona M. (2011).
Análisis contpieza-2,suma);
}
1. Los tres contadores cont1, cont2, cont3 y Las funciones predefinidas de lenguaje C permite
contpieza se inicializan en 0 antes de entrar a la el uso de “bibliotecas”, con funciones
estructura repetitiva do-while. predefinidas que se pueden utilizar en cualquier
programa.
Implementación
#include <stdio.h>
#include <locale.h>
#include <math.h> Ejercicios propuestos
#define PI 3.1416
main()
{
setlocale(LC_ALL, "spanish"); Programas con Estructuras Secuenciales
int recursivo; 1. Al recibir como datos la base y la altura de un
recursivo=1; triángulo, calcule su superficie.
do
{ 2. Al recibir como datos la longitud y el peso de un
char op; objeto expresados en pies y libras, imprima los
float ang,resp; datos de este objeto, pero expresados en metros
printf("\n\n\n\tMenú funciones y kilos, respectivamente.
trigonométricas\n"); 3. Al recibir como datos el radio y la altura de un
printf(" s)seno\n c)coseno\n cilindro, calcule e imprima el área y su volumen.
t)tangente\n");
printf("dame la opción: "); 4. Al recibir como dato el radio de un círculo,
scanf("%s",&op); Leer el Password, si es correcto imprimir calcule e imprima tanto su área como la longitud
printf("dame el ángulo en “Correcto, puedes continuar” y si no imprimir de su circunferencia.
grados: "); “Password equivocado”. 5. Al recibir como dato un número de cuatro
scanf("%f",&ang); dígitos, genere una impresión como la que se
switch(op) muestra a continuación (el número 6352):
Análisis
{
case 'S':case's': 1. Declaramos una cadena llamada cad con un 6
resp=sin(ang*PI/180); máximo de 80 caracteres incluyendo el \0 3
printf("seno = %.2f",resp); 2. La función strcmp de la biblioteca string.h 5
break; compara la cadena capturada con el letrero
case 'C':case 'c': 2
“acceso1234”, si regresa cero las cadenas son
resp=cos(ang*PI/180); iguales e imprime “Correcto, puedes continuar”
printf("coseno = %.2f",resp);
3. Si la función strcmp regresa un valor diferente
break;
case 'T':case 't': de cero las cadenas son diferentes y por lo tanto Programas con Estructuras Selectivas
imprime “Password equivocado”.
resp=tan(ang*PI/180);
1. Un ángulo se considera agudo si es menor de
printf("tangente =%.2f",resp);
90 grados, obtuso si es mayor de 90 grados y
break; Implementación
default: recto si es igual a 90 grados. Utilizando esta
printf("función no existe"); información, escriba un programa que acepte un
break; #include <string.h> ángulo en grados y visualice el tipo de ángulo
} #include <stdio.h> correspondiente a los grados introducidos.
printf("\n\nIngresa opción <1> #include <conio.h> 2. Dados tres números deducir cuál es el central.
repetir programa o <2> salir main() 3. Ingresar tres números enteros diferentes entre
del programa "); { sí y determinar cuál es el número mayor y cuál es
scanf("%d",&recursivo); char cad[80]; el menor.
} printf("\n\tDame tu Password: 4. Leer un número entero e imprimir si es Múltiplo
while(recursivo==1); ");
de 7 o no múltiplo de 7 (cuando sea impar), por
} scanf("%s",&cad);
ejemplo, para el número 35, imprimirá:
if((strcmp(cad,"acceso1234"))==0)
printf("\nCorrecto, puedes Es un número positivo, es impar y es múltiplo de 7.
continuar!!!\n\n\n");
else 5. Dados dos de los ángulos de un triángulo,
printf("\nPassword calcular el tercer ángulo y determinar si el
equivocado!!!\n\n"); triángulo es rectángulo (un ángulo igual a 90
} grados), acutángulo (sus tres ángulos menores a
90 grados) u obtusángulo (un ángulo mayor a 90
grados).
1 1 1 1
𝑆𝑒𝑟𝑖𝑒 = 1 + + + + ⋯ . .
2 3 4 𝑛
1 2 3 4 𝑛
𝑆𝑒𝑟𝑖𝑒 = − + − +⋯+ 𝑛
21 22 23 24 2
𝑆𝑒𝑟𝑖𝑒 = 11 − 22 + 33 − 44 + ⋯ ± 𝑛𝑛
✓ Tener un único nombre de variable que Unidimensionales: Los componentes hacen referencia a los
representa a todos los elementos y éstos se
diferencian por un índice o subíndice. conceptos básicos, elementos que se almacenan en cada una de las
celdas o casillas.
✓ Acceder de manera directa o aleatoria a los operaciones y El índice, por su parte, especifica la forma de
aplicaciones.
elementos individuales del arreglo, por el acceder a cada uno de estos elementos.
nombre del arreglo y el índice o subíndice.
Para hacer referencia a un componente de un
arreglo debemos utilizar tanto el nombre del
Un arreglo unidimensional es un conjunto arreglo como el índice del elemento.
Los arreglos se clasifican en: de n elementos del mismo tipo (enteros, reales,
caracteres, cadenas de caracteres, etc.), En la figura 6 se puede observar la representación
Unidimensionales (vectores o listas) almacenados en memoria continua en un vector gráfica de un arreglo unidimensional.
o lista. Corona, M. y Ancona M. (2011).
Bidimensionales (tablas o matrices)
Para acceder a cada elemento del arreglo se
Multidimensionales (más de dos dimensiones) requiere de un solo índice, el cual representa la
posición en la que se encuentra.
Sintaxis
Figura 6 Representación gráfica de un arreglo
unidimensional
Este modo de asignación no es válido si lo tipo_dato ident_arr[pos]=valor;
hacemos después de declarar el arreglo. Si el
número de valores es menor al tamaño del
Se pueden asignar valores a los elementos del
arreglo a las posiciones faltantes les asigna cero. por ejemplo:
arreglo antes de utilizarlos tal como se asignan
valores a variables. Una manera es inicializando el
int b[3]=18;
arreglo y la otra leyendo cada elemento de este. Lectura e impresión de un arreglo
unidimensional:
en este ejemplo se le asigna el valor 18 al cuarto
elemento del arreglo que se encuentra en la
Es fácil procesar los elementos de un arreglo
posición 3.
mediante ciclos repetitivos porque facilitan la
lectura, impresión, consulta y modificación de
todos los elementos del arreglo, reduciendo el Arreglos de caracteres:
trabajo a unas cuantas líneas bien empleadas.
Cuando la computadora ejecuta un ciclo y la Los arreglos son necesarios para la
instrucción leer (scanf) el programa almacena los implementación de cadenas de caracteres. Una
valores en la variable arreglo. cadena de texto es un conjunto de caracteres.
4.2 Sintaxis
operaciones y
int b[3][5];
Ejemplo 5
float calif[40][7];
Ingrese un vector con 10 números y luego
busque un número concreto. aplicaciones. Inicialización de arreglos
#include <stdio.h> bidimensionales
main() Existen también arreglos con múltiples
{ dimensiones, a cuyos elementos se debe acceder
int i,x=0,vector[10],n=10,dato; utilizando múltiples índices. El número de En el momento de declarar el arreglo, se
int centro,inf=0,sup=n-1; dimensiones del arreglo depende tanto de las especifican los valores.
printf("-Ingresa 10 números-\n"); características del problema que se va a resolver,
for (i=0;i<10;i++) como de las facilidades del lenguaje de Sintaxis
{ programación que se utilice para implementar la
printf("Escriba número %d:",i+1); solución. Cairó, O. (2006) t_dato identif[fil][col]5{valores};
scanf("%d",&vector[i]);
}
Sin duda, los arreglos bidimensionales — por ejemplo:
printf("Escriba el número a
buscar:"); conocidos también como matrices— son los
scanf("%d",&dato); arreglos multidimensionales más utilizados int a[3][3]={1,2,3,4,5,6,7,8,9};
while(inf<=sup) (figura 7).
{
a012
centro=(sup+inf)/2; 0123
if (vector[centro]==dato) 1456
{
printf("Existe\n"); Arreglos Bidimensionales 2789
x=1;
break;
}
Un arreglo bidimensional es un conjunto de n
else
elementos del mismo tipo almacenados en
Lectura e impresión de unos
if(dato < vector [centro] )
{ memoria contigua en una matriz o tabla. A arreglos bidimensionales
sup=centro-1; diferencia de los arreglos unidimensionales que
} sólo requieren de un índice, los arreglos Para la lectura de datos, el programa requiere de
else bidimensionales para acceder a cada elemento
dos ciclos anidados (para ubicar la fila y la
{ del arreglo requieren de dos índices declarados columna), y la instrucción leer (scanf) o leercad
inf=centro+1; en dos pares de corchetes, donde el primer
} (gets), almacenando con ello los valores en cada
corchete se refiere al tamaño de filas y el segundo celda de la tabla o matriz.
} al tamaño de columnas.
if (x==0)
{ El siguiente segmento de programa muestra
printf("No existe\n"); cómo se pueden almacenar datos en una matriz
} mat de 3 filas y 4 columnas, se utiliza la
} instrucción leer (scanf) para guardar o leer los
datos:
Modificación de un elemento de
una matriz
Ejercicios propuestos
#include <stdio.h> La función puede o no recibir valores Una función puede que regrese o no regrese nada
(parámetros), en lenguaje C podemos devolver (void ). En el primer caso se comporta como una
float areatriangulo (void)
cualquier tipo de datos escalares (puntero, tipo variable, ya que la podemos imprimir, asignar a
{
float base, altura; numérico y el tipo carácter o en su caso regresar otra variable, comparar, utilizar como parámetro,
printf("Introduce base: "); un valor nulo). Asimismo, no se pueden devolver etc. En el segundo caso, el resultado lo tenemos
scanf("%f",&base); arreglos ni estructuras. que imprimir dentro de la función (sólo las
printf("Introduce altura: "); variables globales se imprimirán fuera).
scanf("%f",&altura); Para utilizar funciones en un programa es
return (base*altura)/2; necesario declararlas previamente. Existen dos tipos de funciones: Sin paso de
} parámetros y con paso de parámetros.
Activación/invocaci
{
contiene funciones5 variables locales;
instrucción 1;
ón de Funciones y El compilador siempre inicia con la primera
}
instrucción 2;
instrucción que encuentra en el programa
Procedimientos. principal (main) y continúa ejecutándolo según la main( )
estructura de control (secuencial, selectiva o
{
Variables locales;
La base de la programación en C es la función, ya repetitiva) del programa, cuando encuentra la
Cuerpo del programa principal
que constituye una parte fundamental de la llamada a una función éste se traslada y ejecuta ::::::::::::::::::
codificación en el proceso de solución de el cuerpo de la función desde la primera funcion_a( );
problemas. Un programa contiene una o más instrucción hasta encontrar el fin de la misma, funcion_b( );
funciones en uno o más archivos. Corona, M. y cuando esto sucede el compilador regresa a la instrucción 3;
Ancona M. (2011) siguiente instrucción que llamó a la función y ::::::::::::::::::::
continúa de la misma manera. }
Una de las funciones es main(), donde se inicia la
ejecución del programa. El resto de las funciones
se llaman desde main() y desde el interior de otras Ubicación de una función en un Si lo que se quiere es declarar primero los
funciones. programa prototipos de cada función, luego el cuerpo de la
función principal y al final el cuerpo de cada
Las funciones pueden ir antes o después del función, ésta sería su sintaxis :