Professional Documents
Culture Documents
1. Introduccin
2. Ciclo de vida, algoritmos y diagrama de flujo
1. La resolucin de problemas
2. Anlisis del problema
3. Diseo del algoritmo
4. Resolucin del problema
5. Algoritmo
6. Diagrama de flujo
3. Datos, constantes, variables, acumuladores, banderas y contadores
1. Tipos de datos
1. Datos numricos
2. Datos lgicos
3. Caractres
2. Constantes y variables
3. Contador
4. Acumulador
5. Banderas
4. Expresiones
1. Expresiones aritmticas
2. Expresiones lgicas
5. Diseo Top-Down
6. Estructura general de un programa en C
7. Entrada y salida de datos en C
8. Estructuras de desicin
1. Estructura de desicin if-else
2. If's anidados
3. Estructura de descicin multiple Switch
9. Estructuras de repeticin
1. Estructuras de control de repeticin while y do/while
2. Estructura de control de repeticin for y for's anidados
10. Arreglos unidimensionales
Introduccin
El Lenguaje de programacin C fue implantado por primera vez en los aos 70 por
Dennis Ritchie para una computadora DEC PDP-11 corriendo el sistema operativo
UNIX.
A algunos estudiantes que se inician en el estudio de C la visin del lenguaje les causa
miedo (lo digo por experiencia) porque C tiene fama de ser un lenguaje difcil, nada
ms lejos de la verdad. Una vez que se entiende cmo trabaja es fcil dominarlo, por
algo C es el preferido de muchos programadores que lo consideran un lenguaje
"elegante". Por no ser un lenguaje de alto nivel, C le relega al programador cierto
grado de responsabilidad en el desarrollo de los programas.
Arriba
La resolucin de problemas
Diseo descendente
Refinamiento de pasos
Uso de herramientas de programacin: diagrama de flujo o pseudocdigo
Una vez que el algoritmo est diseado y representado mediante una herramienta de
programacin (pseudocdigo o diagrama de flujo) se lleva a cabo la fase de la
resolucin del problema mediante la computadora, la cual se divide a su vez en las
siguientes subfases:
Diagrama de flujo
Arriba
Tipos de datos
Las computadoras pueden trabajar con varios tipos de datos, los algoritmos y
programas operan sobre estos. Existen dos clases de datos: datos simples y datos
compuestos.
Los tipos de datos simples son: numricos (enteros y reales), lgicos y caracteres.
Datos numricos
Los enteros son aquellos nmeros que no tienen componente fraccionario o decimal y
dentro de la computadora son un subconjunto finito de los nmeros enteros. Estos
nmeros pueden ser negativos o positivos y el rango es de 32,768 a 32,767.
El tipo de datos "real" son aquellos nmeros que tienen una parte fraccionaria y
pueden ser positivos y negativos dentro de la computadora forman un subconjunto de
los nmeros reales. Para representar nmeros muy pequeos o muy grandes se
emplea la notacin de punto flotante, que es una generalizacin de la notacin
cientfica. En esta notacin se considera al nmero real como mantisa y al exponente
la potencia de 10 a la que se eleva este nmero.
Datos lgicos
Este tipo de dato es aquel que solo puede tomar uno de 2 valores: verdadero (true) o
falso (false). En lenguaje C no existe el tipo lgico pero se puede implementar con un
nmero entero conociendo que 0 es falso y cualquier nmero diferente de cero
verdadero.
Caracteres
Existe tambin el dato tipo cadena (compuesto) que es una sucesin de caracteres
que se encuentran delimitados por comillas, la longitud de una cadena es el nmero
de caracteres comprendidos entre los delimitadores.
Constantes y variables
Una constante es un dato que permanece sin cambio durante el desarrollo del
algoritmo o durante la ejecucin del programa. La mayora de los lenguajes de
programacin nos permiten el manejo de diferentes tipos de constantes, estas pueden
ser enteras, reales, caracteres y cadenas. En lenguaje C una constante se define por
medio de la instruccin #define (directiva del procesador).
Una variable es un dato cuyo valor puede cambiar durante el desarrollo del algoritmo o
ejecucin del programa. Hay diferentes tipos de variables: enteras, reales, caracteres y
cadenas. Una variable que es de cierto tipo solo puede tomar valores que
correspondan a ese tipo. Si se intenta asignar un valor de tipo diferente se producir
un error.
tipo_de_dato identificador;
Contador
Los procesos repetitivos requieren contar los sucesos y acciones internas, una forma
de hacerlo es mediante un contador. Un contador es una variable cuyo valor se
incrementa o decrementa en una cantidad constante en cada repeticin. La forma en
que se construye un contador es la siguiente:
contador = contador+1;
contador += 1;
contador ++;
Acumulador
int acumulador = 0;
acumulador += valor;
Banderas
int primo;
primo = 0;
primo = 1;
Arriba
Expresiones
sqrt ((p-a)*(p-b)*(p-c));
(a+b+c) / p;
Una expresin toma un valor que se determina por el resultado de la ejecucin de las
operaciones indicadas, tomando los valores de las variables y constantes y aplicando
las prioridades de las operaciones.
Expresiones aritmticas
Este tipo de expresiones nos sirve para representar formulas matemticas y utilizan
los operadores siguientes:
Operador Accin
+ Suma
- Resta
* Multiplicacin
/ Divisin
% Mdulo
++ Incremento
-- Decremento
5+16 = 21
Expresiones lgicas
Operador Accin
Operadores Relacionales
> Mayor que
>= Mayor o igual
< Menor que
<= Menor o igual
== Igual
!= Diferente
Operadores lgicos
&& Y
|| O
! Negacin
Por ejemplo:
Nota: Las expresiones lgicas se utilizan para formar condiciones en los programas.
Arriba
Diseo Top-Down
Si el diseo y planteamiento es correcto nunca ser preciso volver atrs ya que los
niveles anteriores al que se est situando en un momento dado ya habrn resuelto el
problema en su totalidad.
Arriba
Todo programa en C consta de una o ms funciones, una de las cuales se llama main.
El programa siempre comenzar por la ejecucin de la funcin main. Las definiciones
de las funciones adicionales pueden preceder o seguir a main.
1. Una cabecera de la funcin, que consta del nombre de la funcin, seguido de una
lista opcional de argumentos encerrados con parntesis.
2. Una lista de declaracin de argumentos, si se incluyen stos en la cabecera.
3. Una sentencia compuesta, que contiene el resto de la funcin.
Los comentarios pueden aparecer en cualquier parte del programa, mientras estn
situados entre los delimitadores /* */ o comenzar con // si solo es una lnea.
#include <nombre_de_la_biblioteca>
#define nombre_de_la_constante valor
//Funcin principal
void main(){
definicin de variables;
Ejemplo:
#include <stdio.h>
#include <conio.h>
void main(){
getch();
Arriba
Como se mencion anteriormente, es necesario conocer las entradas y las salidas del
problema para poder resolverlo. Para que C reciba estos datos utilizamos las
funciones de biblioteca scanf para la entrada y printf para la salida. Su sintaxis es la
siguiente:
Ejemplo:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main() {
int r, a, p;
a = M_PI * pow(r,2);
p = M_PI * (r+r);
getch();
}
En ocasiones, queremos que el programa reciba una entrada de tipo caracter. Para
lograr esto podemos declarar una variable de tipo carcter y guardarla en getch() o
getche(). La diferencia entre ellos es que getche() muestra en pantalla el carcter
introducido, mientras que getch() lo mantiene oculto. Su sintaxis es la siguiente:
char opc;
opc=getch();
opc=getche();
Arriba
Estructuras de decisin
Ejemplo:
#include <stdio.h>
#include <conio.h>
void main(){
int year;
else
getch();
}
Ifs anidados
if (condicin)
if (condicin)
else
else
Ejemplo:
#include <stdio.h>
#include <conio.h>
void main(){
int a, b, c, d, mayor;
clrscr ();
if (a > b)
if (a > c)
if (a > d)
mayor = a;
else
mayor = d;
else
if (c > d)
mayor = c;
else
mayor = d;
else
if (b > c)
if (b > d)
mayor = b;
else
mayor = a;
else
if (c > d)
mayor = c;
else
mayor = d;
getch();
}
La estructura switch evala una expresin que puede tomar n valores distintos, segn
con cual de estos valores coincida, se ejecutaran ciertas acciones, es decir, el
programa o algoritmo seguir un determinado camino entre los n posibles.
case exp_constante_1:
acciones a realizar cuando la expresin tiene el valor
exp_constante_1;
break;
case exp_constante_2:
acciones a realizar cuando la expresin tiene el valor
exp_constante_2;
break;
default:
acciones a realizar cuando la expresin no coincide con
ninguno de los casos;
break;
Arriba
Estructuras de repeticin
En estas estructuras el conjunto de instrucciones que forman parte del bucle se repite
mientras se cumple una determinada condicin.
La estructura do/ while prueba la condicin despus de ejecutar las instrucciones del
bucle y por lo tanto esta se ejecutar por lo menos una vez.
while (condicin) {
Instrucciones adicionales;
}
Ejemplo:
#include <stdio.h>
#include <conio.h>
void main(){
int b = 99;
while ( b > 0 ){
printf ("\n%i bottle(s) of beer on the wall,", b);
printf ("\n%i bottle(s) of beer.", b);
printf ("\nTake one down, pass it around,");
printf ("\n%i bottle(s) of beer on the wall.\n", b-1);
b--;
}
getch();
}
do {
Instrucciones adicionales:
}
while (condicin);
Ejemplo:
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(){
do{
clrscr();
raiz=(b*b)-4*a*c;
if (raiz>=0){
x1=(-b+sqrt(raiz))/(2*a);
x2=(-b-sqrt(raiz))/(2*a);
resp = getche();
}
while (resp=='s' || resp=='S');
getch();
}
Ejemplo:
#include <stdio.h>
#include <conio.h>
void main(){
clrscr ();
printf("Serie de Fibonaci\n\n");
printf("Escribe el numero final: ");
scanf("%i",&a);
printf("%6i",x);
printf("%6i", y);
z=x+y;
printf("%6i",z);
x = y;
y = z;
}
}
getch();
}
Las 3 expresiones de la estructura for son opcionales, si se omite la condicin el
compilador de lenguaje C supone que esta es verdadera y crea un ciclo infinito; si se
omite el contador, la variable de control se debe inicializar en otra parte del programa
antes del ciclo; y si se omite la variacin, la modificacin de la variable de control se
calcula mediante instrucciones dentro del bloque de la estructura for o bien se omite
porque no se requiere.
Arriba
Arreglos unidimensionales
El nmero de posicin que aparece dentro de los corchetes se conoce como ndice y
debe ser un nmero entero o una expresin entera, por ejemplo:
x=a[7]/2;
x=a[4]=12;
int a[12];
float f[10];
Ejemplo:
#include <stdio.h>
#include <conio.h>
#define MAX 12
void main(){
clrscr();
b[j] = a[i];
j++;
}
else {
c[k] = a[i];
k++;
}
getch();
}
Arriba
www.geocities.com/eztigma