Está en la página 1de 35

Introduccin a la Algoritmia

PROGRAMANDO EN LENGUAJE C

Profesor: MSc. Jos Luis Alonso Correo: jl.alonso@ce.pucmm.edu.do

Primeros Pasos para Escribir un Programa en C


Paso 1: Leer y entender el contexto del problema que requiere una solucin mediante un programa de computadora. Paso 2: Desarrollar un algoritmo para resolver el problema. Paso 3: Verificar el algoritmo para su validez. Paso 4: Convertir el algoritmo en lenguaje C. Paso 5: Probar y verificar el programa C para su validez.

Ejemplo: Realizar un algoritmo que sume dos nmeros enteros positivos y muestre el resultado de la suma. Nota: Lo primero para desarrollar un programa en lenguaje C, es crear un archivo denominado archivo fuente con extensin .cpp en cualquier editor de texto conocido.

Estructura de un Programa
1. Llamadas a bibliotecas 2. Declaracin de funciones (prototipos de funciones) 3. Declaracin de variables globales

4. Main(){
5. 6. 7. } 8. Definicin de funciones

Declaracin de variables locales sentencias

Comentarios en C

Es cualquier informacin que se aade a su archivo fuente. Los comentarios se usan para mejorar la legibilidad del programa. Los comentarios son ignorados por el compilador. Si desea comentar mltiples lneas se usa /* para empezar el comentario y */ para cerrar el comentario. Si desea comentar una sola lnea se usa //. Los comentarios pueden ser usados para deshabilitar ciertas partes de un programa.

Funcin printf()

Esta funcin se encuentra en la librera o archivo de cabecera stdio.h. printf nos permite mostrar informacin. printf retorna el numero de caracteres imprimidos. printf nos permite hacer clculos dentro de la funcin. printf muestra el texto que se coloque dentro de doble comillas () printf requiere el carcter backslash una secuencia de escape para mostrar ciertos caracteres especiales. printf puede mostrar variables usando cadenas de formato %. Todo mensaje que sea dirigido a la salida estndar por medio de un cdigo hecho en C, usando cualquier funcin, trabaja con el alfabeto ingles lo que implica que no podemos incluir vocales acentuadas, la letra , etc.

Funcin printf()

Cadenas de Formato
Cadena de Formato %d %i %o Propsito int (notacin decimal con signo) int (notacin decimal con signo, octal o hexadecimal) int (notacin octal sin signo)

%x %X
%u %c

int (notacin hexadecimal sin signo)


int (notacin decimal sin signo) char

%f %e %E %g %G
%s

double
cadena de caracteres

Funcin printf()

Secuencias de Escape
Secuencia de Escape Propsito

\a
\b \f

Carcter alerta (timbre)


Retroceso (Backspace) Formfeed

\n
\r \t

Nueva lnea
Retorno de carro Tabulador horizontal

\v
\\ \? \' \ \ooo \xhh

Tabulador vertical
Diagonal inversa Signo de interrogacin Comilla simple Comilla doble Nmero octal Nmero hexadecimal

Funcin scanf()

Esta funcin se encuentra en la librera o archivo de cabecera stdio.h. scanf es la funcin mas utilizada para la entrada de datos a travs del teclado. scanf(cadena de formato, direccin de memoria de la variable); Se pueden capturar varios valores al mismo tiempo, por ejemplo: scanf(%3d %3d %3d,&a,&b,&c);

Palabras Claves en C

En C, como en cualquier otro lenguaje, existen una serie de palabras clave (keywords) que el usuario no puede utilizar como identificadores (nombres de variables y/o funciones). Tienen un especial significado para el compilador. El C es un lenguaje muy conciso, con muchas menos palabras claves que otros lenguajes. A continuacin se presenta la lista de las 32 palabras clave del ANSI C.
auto break case char const continue default do double else enum extern float for goto if int struct long switch register typedef return union short unsigned signed void sizeof volatile static while

Calificadores de Tipos de Datos


Los tipos bsicos pueden modificarse usando calificadores de datos. Los calificadores de tipos de datos son short, long, signed y unsigned. Las variables enteras pueden ser calificadas como short int, long int, signed int o unsigned int. Tambin es vlido unsigned short int, o unsigned long int. Generalmente un short int requiere menos memoria que un int, mientras que un long int requiere ms memoria que un int. Todos estos son dependientes del compilador y deben ser verificados por el programador. Un unsigned int utiliza el mismo espacio de memoria que un int pero permite almacenar el doble de nmeros. El significado de estas variaciones es siempre dependiente del compilador que se use.

Operadores Aritmticos

Existen 5 operadores aritmticos en C. +, -, *, / y %. Cuando se usa con operandos enteros, todos los operadores anteriores retornan un resultado entero. Cuando uno de los operandos es un float, el resultado sera tambin un float. El operador % slo es vlido cuando ambos operando son enteros. Cuando se usa el operador /, se debe tener mucho cuidado de asegurar que a/b, b no sea 0. Si se intenta dividir entre 0 el programa no funcionar. Si uno de los operandos son negativos, entonces el uso de los operandos anteriores resultar en valores cuyos signos ser determinados por las reglas usuales del lgebra.

Operadores Aritmticos

Cuando uno de los operandos es negativo, el resultado del operador % no est claro. La mayora de los compiladores de C hacen que el residuo tenga el mismo signo que el primer operando. Una expresin aritmtica es una combinacin de operandos y operadores. Considere la siguiente expresin: k = 5*10+7*3-15/4+8-2 . Para evaluar la expresin aritmtica anterior correctamente debemos conocer la jerarqua u orden de prioridad de los operadores aritmticos.
Prioridad Primero Segundo Operadores */% +Descripcin Multiplicacin, divisin, mdulo Adicin, resta

Tercero

Asignacin

Cuando las expresiones tiene operadores de la misma prioridad, digamos * y /, la evaluacin es de izquierda a derecha.

Operadores Aritmticos

Los parntesis sobrepasan todas las prioridades en la expresiones. Sin embargo dentro del parntesis las prioridades continan vigentes. Los parntesis pueden estar anidados; en cuyo caso la expresin en el parntesis ms interno ser evaluada primero. Cuando se usan parntesis, verifique que los parntesis izquierdo y derecho coincidan.

Operadores Aritmticos de Asignacin

Los Operadores Compuestos de Asignacin pueden ser utilizados como atajos al escribir declaraciones de asignacin.

Operador += -= *= /= %=

Propsito Suma/Asignacin Resta/Asignacin Multiplicacin/Asignacin Divisin/Asignacin Mdulo/Asignacin

Ejemplo X = 10; X +=5; X = 10; X -=5; X = 10; X *= 5; X = 10; X /= 5; X = 10; X %= 5;

Salida 15 5 50 2 0

Conversin Explcita de Tipos


Esta operacin se denomina conversin (Casting). Se indica explcitamente al compilador que operando en cuestin debe ser convertido a otro tipo de dato. Es importante que el tipo de dato al que se est convirtiendo est entre parntesis ().

Ejemplo : Considere las siguientes declaraciones: int x; float y; Qu sucede con la expresin aritmtica (x-y) % 10?

Conversin Implcita de Tipos

Este tipo de conversin se presenta cuando el Lenguaje C realiza una conversin automtica de un tipo de dato a otro. Este procedimiento se llama conversin implcita de tipo.

Una buena prctica de programacin sugiere que el programador haga siempre una conversin explcita en lugar de dejar que el compilador haga conversin implcita. El resultado obtenido de los dos casos es el mismo.

Piense... Despus Codifique

Estructuras de Control de Decisin

Nos permiten crear programas donde ciertas condiciones se puedan verificar. Las instrucciones a ejecutar son determinadas por las condiciones que se presenten. Nos permiten solventar problemas como por ejemplo, encontrar el mximo de dos enteros, determinar si una persona es mayor de edad, realizar diversos tipos de validaciones, entre otros. Las Estructuras de Control de Decisin a estudiar son: if, ifelse, if anidado, operador ternario y switch case.

Construccin if Simple
if (si la condicin es verdadera) sentencia;

En este caso sentencia es solo una sentencia en C, la cual se llama sentencia simple.

Si se desea ejecutar ms de una sentencia, que siguen a la sentencia if, se deben encerrar todas estas sentencias entre llaves {}.

Construccin if-else
if (condicin) { Sentencia1 ; Sentencian ; }else{ Sentencia1 ; Sentencian ; }

Si la condicin es verdadera, entonces el conjunto de sentencias dentro de las {}, llamadas sentencias compuestas, sern ejecutadas.

Si la condicin es falsa, entonces las sentencias compuestas dentro de las {} que siguen al else sern ejecutadas.

Construccin if Anidado
if (condicin) { if(condicin) Sentencia; else{ sentencia; } }else{ Sentencia1; Sentencian; }

Es muy importante la identacin, es decir, escribir programas con sangras, ya que permite una fcil comprensin y proporciona mayor claridad.

Expresiones y Operadores Lgicos y Relacionales


La parte crucial de la sentencia if es la condicin. Una condicin es cualquier expresin relacional que conduce a verdadero o falso. Las expresiones relacionales son aquellas que se forman con una combinacin de identificadores, constantes y expresiones aritmticas, todas enlazadas a travs de un conjunto de operadores relacionales. Las expresiones relacionales siempre producen un valor de verdadero o falso. En C, las expresiones relacionales producen 1 para verdadero y 0 para falso.

Operadores Relacionales
Algunos de los operadores relacionales que se pueden usar para formar expresiones relacionales son: < Menor que. < = Menor o igual que. > Mayor que. > = Mayor o igual que. Todos estos operadores pertenecen al mismo grupo de precedencia que es menor que los operadores unarios y aritmticos. La asociatividad de la evaluacin es de izquierda a derecha. Los operadores relacionales se usan para formar expresiones relacionales.

Operadores de Igualdad
Se pueden usar los siguientes operadores de igualdad en expresiones relacionales: == Igual a. != No igual a. Ellos pertenecen a un grupo de precedencia separado por debajo de los operadores relacionales. Los operadores relacionales se evalan con una mayor precedencia que los de igualdad. La asociatividad de los operadores es de izquierda a derecha.

Operadores Lgicos
Llamados conectores lgicos, los cuales se listan a continuacin: && Y (AND) || O (OR) ! NO (NOT) El operador lgico && retorna el valor de VERDADERO (TRUE) si ambos operandos son verdaderos, sino retorna el valor de FALSO (FALSE). EL operador lgico || retorna el valor de FALSO (FALSE) slo si ambos operandos son falsos, sino retorna VERDADERO. El operador lgico ! Cambia un operando de VERDADERO a FALSO y viceversa.

Expresiones Lgicas

Son expresiones relacionales conectadas por operadores lgicos. El valor que retorna una expresin lgica es realmente un entero; es valor de verdadero se representa por el valor de 1 y falso por el valor de 0.
Categora Operadores ++ -*/% +< <= > >= == != && Asociatividad Derecha a Izq Izq a derecha Izq a derecha Izq a derecha Izq a derecha Izq a derecha

Unarios Aritmtica (multiplicacin, divisin y mdulo) Aritmtica (adicin, sustraccin) Relacional Igualdad Y (and) lgico

O (or) lgico
No (not) lgico

||
! Jerarqua de Operadores

Izq a derecha
Izq a derecha

Operador Ternario
Es una construccin if de una lnea la cual tiene 3 trminos. Los smbolos de interrogacin (?) y dos puntos (:) se usan como operadores ternarios. Su estructura es la siguiente: condicin ? condicin_valor_verdadero : condicin_valor_falso; Si la condicin se evala a verdadero entonces la sentencia despus del signo de interrogacin (?) se ejecuta, sino la sentencia despus de los dos puntos (:) se ejecuta. Ejemplo del uso del operador ternario: (a==b) ? printf(Iguales \n) : printf(No son iguales \n);

Operador Ternario
El operador ternario tambin se puede usar en sentencias de asignacin como sigue: a = 10; b = 8; x = (a == b) ? a : b; La condicin a == b evala a falso y la sentencia despus del : se ejecuta. Por tanto x toma el valor de 8. Los operadores ternarios permiten el uso conciso de una condicin if else simple.

Estructura switch case


C provee otra construccin, la cual permite escribir programas cuando un nmero de condiciones alternas deben ser validadas. Sintaxis: switch (variable){ case valor 1: sentencias; break; case valor 2: sentencias; break; case valor n: sentencias;

break;
}

Si la sentencia break no est presente la ejecucin fluye lgicamente a las sentencias siguientes del prximo case, lo cual comnmente no se desea.

Construcciones Iterativas

Son construcciones que ayuden a repetir una porcin de cdigo un cierto nmero de veces. La ejecucin repetida de un conjunto de tareas se denomina iteracin. Las iteraciones son tambin llamadas bucles. Las construcciones iterativas proveen los fundamentos apropiados para una gran cantidad de problemas, que van desde problemas simples a problemas muy complejos. Existen tres construcciones iterativas disponibles en C, la construccin while, for, do-while.

Construccin Iterativa while


La forma general es como sigue:
La variable de control del bucle se inicializa while (prueba la condicin usando la variable de control del bucle){ Ejecutar sentencia; . . . Modificar la variable de control del bucle; } Cada bucle while comienza con una inicializacin de la variable de control del bucle.

Se verifica si la condicin se satisface o no. sta es llamada condicin while, o condicin de iteracin.

Si la condicin es verdadera, el conjunto de sentencias encerradas dentro de las llaves {} son ejecutadas.

Construccin Iterativa while


Inicializar la variable de control

Verificar la condicin

Cuerpo del while

Modifica la variable de control del bucle

Fin del bucle while

Construccin Iterativa while


1 while (condicin_bucle) sentencia;

Porcin de Cdigo

2 while (condicin_bucle) { Sentencia-1; Sentencia-2; . . . Sentencia-n; }

Porcin de Cdigo

Construccin Iterativa for


La forma general es como sigue:
for (inicializacin del contador; condicion de prueba; actualizacin del contador){ Sentencias; }

while sum = 0; k = 1; while (k <= N){ sum = sum + k; k = k + 1; }

for

Condicin

sum = 0; for (k = 1; k <= N; k++) sum = sum + k;

Inicializacin

Incremento

Construccin Iterativa do-while


La forma general es como sigue:
do{
Sentencia 1; Sentencia 2; . . . }while (condicin); Es una construccin iterativa que se usa cuando el cuerpo de un bucle se debe ejecutar al menos una vez.

En los bucles while y for, el cuerpo del bucle se ejecuta slo cuando la condicin es verdadera; ello implica que el cuerpo de estas construcciones iterativas puede que no se ejecute.

En el do-while la condicin es verificada al final, de este modo el cuerpo del bucle se ejecuta al menos una vez.

Introduccin a la Algoritmia
PROGRAMANDO EN LENGUAJE C

Profesor: MSc. Jos Luis Alonso Correo: jl.alonso@ce.pucmm.edu.do

También podría gustarte