Table Of Contentmailxmail - Cursos para compartir lo que sabes
Algoritmos y lenguaje C
Autor: abraham sopla
[http://www.mailxmail.com/curso-algoritmos-lenguaje-c]
Descubre miles de cursos como éste en www.mailxmail.com 1
mailxmail - Cursos para compartir lo que sabes
Presentación del curso
Este curso pretende dar a conocer las explicaciones más simples del trabajo de los
ordenadores.
Puedes descubrir cada paso que realizan, cómo lo realizan, qué es lo qué utilizan y
en qué orden lo utilizan.
Visita más cursos como este en mailxmail:
[http://www.mailxmail.com/cursos-informatica]
[http://www.mailxmail.com/cursos-programacion]
¡Tu opinión cuenta! Lee todas las opiniones de este curso y déjanos la tuya:
[http://www.mailxmail.com/curso-algoritmos-lenguaje-c/opiniones]
Cursos similares
Cursos Valoración Alumnos Vídeo
Introducción básica a Linux
Curso básico de linux explicando aspectos importantes de fedora core, knopix, suse y 11.995
otras distribuciones de linux. este curso está recomendado para usuarios que ya h...
[14/07/06]
SQL
Sql (structured query language) es un lenguaje de programación para acceder y manipular 24.968
bases de datos. sql surgió de un proyecto de ibm en el que investigaba e...
[10/05/04]
Manual de programación
El objetivo de este curso consiste en ofrecer conocimientos básicos de programación. no 1.316
pretender enseñar cómo programar en un lenguaje específico, ni utilizar ninguna te...
[31/01/08]
Introducción básica al protocolo HTTP
Es el conjunto de reglas que siguen dos computadores para intercambiar información a 493
través de una red como internet. un protocolo es una regla establecida para determina...
[03/06/08]
Procesos en C. Sincronización (primera parte)
Curso de informática sobre sincronización de procesos en c y señales en linux que te 49
ofrece la posibilidad de comprender los mecanismos de comunicación entre procesos
inf...
[21/10/08]
Descubre miles de cursos como éste en www.mailxmail.com 2
mailxmail - Cursos para compartir lo que sabes
1. Introducción
[http://www.mailxmail.com/curso-algoritmos-lenguaje-c/introduccion]
En educación superior quien lleve un curso de Lenguajes de Programación, técnicas
de programación, algoritmos, estructuras de datos, sistemas operativos, etc, se
habrá dado cuenta lo complicados que resultan estos cursos cuando no
entendemos, como es que la computadora maneja internamente las líneas de código
escritas en los programas para realizar una actividad. ¿Quien sabe como se ordenan
los datos en una hoja de calculo Excel?, de manera que, luego de seleccionar datos,
pulsamos el botón ordenar de la barra de herramientas y listo. ¿Quién sabe como
calcula el término n de una sucesión de números?, etc, sinceramente una serie de
problemas.
Todos intentamos manejar las computadoras -usarlas- para resolver problemas,
sin antes hacer por lo menos un pequeño plan acerca de la solución o tantear el
camino a seguir para llegar a la solución de una situación problema dado. Aspectos
que nos obligan a llevar largas horas, sentados frente a las computadoras. Hay
quienes creen que para ser buenos programadores hay que tener una computadora,
talvez no sea tan cierto; pero mas seguro es primero saber resolver los problemas
usando algoritmos para luego llevarlos a las computadoras. En estos casos queda
claro que el uso de la computadora pasa a segundo plano. En consecuencia para
resolver un problema en computadora primero hay que hacer un plan, en otras
palabras un algoritmo.
Los algoritmos que desarrollaremos serán usando pseudocódigo e implementados
en lenguaje C, tratando de no llegar a complicaciones en el uso del lenguaje.
En los primeros capítulos del libro, encontramos teoría suficiente para desarrollar e
implementar los algoritmos en lenguaje C. Tenga en cuenta que este documento no
tiene prioridad en el estudio del lenguaje C si no más bien en el uso del mismo en la
resolución de problemas comunes. Según el avance se trata ejercicios combinados
con los diferentes tipos de sentencias y grado de dificultad. Algunos de los
ejercicios solucionados se encuentran propuestas por otros autores, sin embargo lo
que a nosotros nos interesa es como solucionarlos, para así cumplir con nuestro
objetivo.
Este trabajo está orientado a estudiantes que se inician en educación superior en
carreras de Ingeniería de Sistemas, computación e informática, electrónica,
industrial, etc., a quienes se les sugiere estudiar detenidamente los casos que
presentamos. Claro está que nos es la idea que se los copien o se los aprendan de
memoria las soluciones, si no más bien tengan en sus manos un material de ayuda.
Descubre miles de cursos como éste en www.mailxmail.com 3
mailxmail - Cursos para compartir lo que sabes
2. Indicaciones para principiantes
[http://www.mailxmail.com/curso-algoritmos-lenguaje-c/indicaciones-principiantes]
1.1 PSEUDOCÓDIGO
El pseudocódigo es un lenguaje general, de especificación de la solución del
problema mediante un algoritmo. Se considera como el paso anterior a la
codificación. La ventaja es que, este lenguaje puede ser traducido indistintamente y
sin problemas a cualquier lenguaje de programación de computadora. Un algoritmo
es una secuencia de pasos lógicos que nos conducen hacia la solución de un
determinado problema.
Nosotros haremos los algoritmos usando un lenguaje común, el más sencillo para
todos. Indicamos que no nos distraeremos preocupados por terminismos. La idea
en fin, será solucionar los problemas y así lo haremos, sabiendo que lo más
importante antes de empezar a escribir un programa es necesario hacer el algoritmo.
Lógicamente, si ya tiene el programa que soluciona un problema, ya no necesita
hacerle un algoritmo; pero si de situaciones académicas se trata, hacer el algoritmo,
teniendo el programa no necesita de ningún esfuerzo, solamente pegarse a algunas
reglas y términos de pseudocódigo, como inicio, fin asignar, etc.
1.2 ESTRATEGIA PARA RESOLVER PROBLEMAS CON ALGORITMOS
Cuando usted está resolviendo un examen va donde el profesor cada rato y
pregunta y pregunta acerca de un problema, hasta se olvida que esta rindiendo un
examen, después dice, esta mal planteada la pregunta, y raja, se molesta, tira la silla
y sale del examen y comenta con sus compañeros e insiste que el problema estaba
mal planteado, lógicamente que eso puede suceder; si para usted es todas las veces
así, quizás resulte que en el examen que acaba de desaprobar y después que el
profesor resolvió el problema usted diga ¡claro la pregunta era esa!, ¡verdad esa era
la respuesta!. En el pregrado también lo hacíamos.
¡La experiencia enseña!, habemos personas que intentamos dar respuestas a los
problemas, sin haber entendido de lo que se trata, algo así como que al leer o
escuchar, leemos o escuchamos a medias y si en esta situación nos encontramos
pues lo que estamos haciendo es aumentar la dificultad del problema, que se
supone vamos a solucionar. Ante un problema, hay que leer o escuchar cuantas
veces sean necesarias, hasta comprender o memorizar el enunciado si fuera posible.
Cuantas veces hemos fracasado por no escuchar o saber leer bien, lo que implica
entender. Saber escuchar o leer es saber comprender. ¡Si no entiende un problema
no se atreva a resolverlo, mejor quédese intentado comprenderlo!
A continuación planteamos 3 pasos indispensables en el desarrollo de problemas
usando algoritmos.
1.2.1 PASOS PARA DEFINIR PROBLEMAS
1. COMPRENDER EL PROBLEMA:
Lea o escuche atentamente el problema. Haga un bosquejo, tantee una posible
solución. Si no entiende el problema no continúe al paso 2.
2. IDENTIFICAR LAS ENTRADAS, PROCESOS Y SALIDAS
Entradas: Identifique los datos de ingreso al algoritmo.
Procesos: Son las operaciones, cálculos matemáticos o procesos que se realizan con
los datos de entrada, a veces dependen del conocimiento de algún tema especifico,
Descubre miles de cursos como éste en www.mailxmail.com 4
mailxmail - Cursos para compartir lo que sabes
puede ser matemáticas, estadística, química, biología, investigación de operaciones,
contabilidad, etc.
Salidas: Son los resultados a imprimirse o mostrarse. Es la solución al problema. Son
las respuestas.
3. COMPROBAR:
Consiste en simular para verificar si el algoritmo resuelve el problema realmente, se
hacen con los datos posibles de entrada, puede realizarse en papel y a mano.
Generalmente los problemas con estructuras secuénciales y selectivas son más
complicados de comprender y fáciles de identificar las entradas, procesos y salidas,
ya que las soluciones tratan de al menos de operaciones matemáticas u procesos
sencillos. Por otro lado los problemas donde se usan bucles o repeticiones, son
sencillos de comprender y difíciles de identificar las entradas, procesos y salidas.
EJEMPLO 1: Escribir un algoritmo para un programa que calcule el área de un
trapecio.
1. Comprendiendo el problema:
Luego de saber que el problema se trata de geometría y es un tema que todo
estudiante de educación superior conoce, el problema ya estaría comprendido de
antemano, específicamente se trata del cálculo del área de un trapecio.
2. Identificando las entradas, procesos y salidas
Entradas: Para calcular el área de un trapecio, necesitamos saber el valor numérico
de: la base mayor, base menor y su altura.
Procesos: El proceso general a realizarse sería:
Salidas: La única salida sería el , en ambos casos
3. Comprobando.
Algoritmo
Inicio
Declare area, basemayor, basemenor, altura
Area: ((basemayor+basemenor)/2)* altura
Imprimir area
Fin
EJEMPLO 2: Escriba un programa que calcule la suma de:
1/10+1/11+1/12+1/13+...+1/50
Usemos los pasos para definir el problema.
Descubre miles de cursos como éste en www.mailxmail.com 5
mailxmail - Cursos para compartir lo que sabes
1. El problema trata de la suma de una serie de fracciones cuyo numerador es 1 y
los denominadores están en sucesión aritmética empezando del 10 y van
aumentado de 1 en 1 hasta 50.
2. El proceso consiste en una simple suma, sucesiva.
3. La salida es la suma.
Algoritmo
Inicio
Declare suma, a
Suma:0
Desde a=10 hasta a<=50 hacer
Suma: suma+(1/a)
Fin desde
Imprimir suma
Fin
Descubre miles de cursos como éste en www.mailxmail.com 6
mailxmail - Cursos para compartir lo que sabes
3. Apuntes de Lenguaje C
[http://www.mailxmail.com/curso-algoritmos-lenguaje-c/apuntes-lenguaje-c-1]
2.1 LIBRERÍAS
Ces un lenguaje pequeño. La funcionalidad de C se obtiene a través de un rico
conjunto de bibliotecas de funciones, llamados también librerías.
Por ejemplo la función sqrt pertenece a la librería math.
#include<math.h> //declaración de librería
{...
a=sqrt(25); //uso de la función sqrt en el programa principal
...
}
La función sqrt devuelve la raíz cuadrada de un número, ejm sqrt(25) regresa 5
NOTA: Si usted intenta usar la función sqrt sin declarar la librería math, tendrá
errores justamente en la línea donde este escrita esta función. Otras funciones de la
librería math serían sin, cos, tan, etc.
Otras librerías son stdio, stdlib, etc. Las librerías y sus funciones están escritas en la
ayuda del lenguaje C.
¡Cada librería contiene sus propias funciones!
La librería stdio, es la que mas solemos usar para resolver problemas sencillos como
los que veremos mas adelante.
2.2 VARIABLES Y CONSTANTES
2.2.1 VARIABLE: Es un identificador o nombre que sirve para almacenar valores de
un tipo de datos, las variables pueden ser de un máximo de 256 caracteres, el
carácter inicial de las variables será una letra (m1, suma2, da2s, etc). Lo incorrecto
sería por ejemplo 1num, 25hora, 5p1, etc.
2.2.2 CLASIFICACIÓN DE VARIABLES
Las variables pueden ser locales o globales.
Variables Locales: son las que se declaran dentro de un procedimiento o función.
Variables Globales: son aquellas que se definen fuera de las funciones. Pueden ser
utilizadas en cualquier función que se declaren después de ellas, mantienen su valor
entre las distintas llamadas.
Descubre miles de cursos como éste en www.mailxmail.com 7
mailxmail - Cursos para compartir lo que sabes
2.3 ESTRUCTURA MÁS SIMPLE DE UN PROGRAMA EN C
Lo explicamos a través de un ejemplo que imprime la suma de 4 y 7.
NOTA
Del ejemplo anterior:
x y n son variables globales
c y s son variables locales.
- C requiere un punto y coma al final de cada sentencia.
- printf es una función estándar de C, que se usa para escribir o imprimir datos.
- \n significa salto de línea.
- % Salida formateada.
LA FUNCIÓN main()
Representa a la función principal; la programación en C es en base a funciones.
Descubre miles de cursos como éste en www.mailxmail.com 8
mailxmail - Cursos para compartir lo que sabes
4. Apuntes de Lenguaje C II
[http://www.mailxmail.com/curso-algoritmos-lenguaje-c/apuntes-lenguaje-c-2]
2.4 DECLARACIÓN DE VARIABLES Y TIPOS DE DATOS
2.4.1 DECLARACIÓN DE VARIABLES
Las variables se escriben usando caracteres, inclusive los números con un tamaño
máximo de 255 letras, siempre empezando con una letra.
Ejemplo de variables: número1, a, b, c, num6, promedio, suma_números, a12,
as12mn, etc. Vea que en todas las variables empezamos con letras. La declaración
de variables se hace de la siguiente manera:
Tipo Variable;
Ejemplo: Int a;
En este caso la variable a de tipo entero, aceptará valores enteros, como 2, -20, 15,
0, -658, etc.
2.4.2 TIPO DE DATOS
Los tipos de datos simples son:
CADENA DE CARACTERES: Se derivan de los de tipo caracter, se declaran así:
char mensaje[20];
En este caso la variable mensaje aceptará un texto o cadena cuya longitud será de
20 caracteres como máximo.
Luego las variables pueden sufrir algunas modificaciones como las mencionamos a
continuación y los tipos de datos pueden quedar clasificados de la siguiente manera:
Los tipos de datos básicos tienen varios modificadores que los preceden. Se usa un
modificador para alterar el significado de un tipo base para encajar con las
necesidades de diversas situaciones.
LOS MODIFICADORES: signed, unsigned, long y short.
Signed, unsigned, long y short pueden ser usados con los tipos char e int. Aunque
permitido, el uso de signed en enteros es redundante porque la declaración de un
entero por defecto asume un número con signo.
Descubre miles de cursos como éste en www.mailxmail.com 9
mailxmail - Cursos para compartir lo que sabes
2.4.3 LECTURA Y ESCRITURA DE VARIABLES
El lenguaje C usa salida formateada. La función printf tiene un carácter especial para
formateo % un carácter enseguida define un cierto tipo de formato para una
variable, por ejemplo d indica que el resultado será entero como se indica en la
tabla a continuación. Ejemplo.
Por ejemplo:
printf(" %c %d %f ",ape, i, x);
Explicación: La sentencia(s) de formato se encierra entre comillas " ", y enseguida las
variables. Asegurarse que el orden de formateo y los tipos de datos de las variables
coincidan -debe existir correspondencia entre las variables y los formatos- en este
caso, el valor de ape será de tipo carácter, i entero decimal, x de coma flotante.
scanf() es la función para entrar valores a variables. Su formato es similar a printf.
Por ejemplo:
scanf("%c %d %f %s",&nombre, &i, &x, cad);
Observar que se antepone & a los nombres de las variables, excepto a la variable de
tipo cadena de caracteres que es de tipo string.
2.4.4 LAS CONSTANTES
Una constante es una variable, a la cual se le asigna un valor y este no puede
cambiar.
Las constantes se declaran usando la palabra clave const, por ejemplo:
const a = 6;
NOTAS:
- Es usual inicializar una constante con un valor, ya que no puede ser cambiada de
alguna otra forma.
2.5 OPERADORES
2.5.1 EL PARÉNTESIS
Se usan para agrupar datos.
No es lo mismo: 4+8/2 que (4+8)/2, si evaluamos en el primer caso tendremos
como resultado 8 y en el otro 6, e ahí la importancia del paréntesis bien usado.
2.5.2 EL OPERADOR DE ASIGNACIÓN:
Es el =, por ejemplo:
m=4; letra='y';
Se lee:
El número 4 es asignado a la variable m
El caracter y es asignado a la variable letra
2.5.3 OPERADORES ARITMÉTICOS
Operadores aritméticos más usuales:
Descubre miles de cursos como éste en www.mailxmail.com 10
Description:de un número o calcular un elemento de la serie del Italiano Fibonacii. NUNCA LO OLVIDE: En un proceso recursivo, identifique primero la semilla,