2. 1 Iniciación a la programación en lenguaje C...................................................................1
Algoritmos y programas...............................................................................................1
Lenguajes de programación..........................................................................................1
1.1.1 Lenguajes de bajo nivel....................................................................................1
1.1.2 Lenguajes de alto nivel.....................................................................................1
1.1.3 Lenguajes de cuarta generación........................................................................2
1.1.4 Lenguajes orientados a objetos.........................................................................2
2 Creación de un programa................................................................................................2
3 Entorno de programación de BORLAND TURBO C++................................................3
#include <stdio.h>........................................................................................................4
void main( )..................................................................................................................4
{....................................................................................................................................4
int num;.........................................................................................................................4
printf("Introduce un entero: ");.....................................................................................4
scanf("%d",&num);......................................................................................................4
num=num+1;................................................................................................................4
printf("Incremento en una cantidad %d",num);............................................................4
}....................................................................................................................................4
4 Elementos principales de un programa en lenguaje C:...................................................4
Tipos de datos y declaración de variables:...................................................................5
Instrucciones de entrada y salida de información:........................................................5
Operadores aritméticos básicos:...................................................................................6
Operadores relacionales:...............................................................................................7
Operadores lógicos:......................................................................................................7
Estructuras selectivas en lenguaje C:............................................................................7
Estructuras repetitivas:.................................................................................................8
5 Ejemplos de programas en C..........................................................................................9
6 Actividades de la unidad:.............................................................................................11
3. LENGUAJE C Página 1
1 Iniciación a la programación en lenguaje C
Algoritmos y programas
Se puede definir un algoritmo como la sucesión de pasos ordenados que se
deben realizar desde que se plantea un problema, hasta que éste queda perfectamente
resuelto. Por ejemplo, la elaboración de una tortilla francesa, conlleva una serie de
pasos: cascar los huevos en un plato hondo, añadirle sal al gusto,…
Un programa es similar a un algoritmo; la gran diferencia es que los pasos que
permiten resolver el problema deben escribirse en un determinado lenguaje de
programación, para que el ordenador pueda ejecutarlos y encontrar así la solución.
Lenguajes de programación
La programación es la rama de la informática que permite crear programas
propios para resolver distintos problemas. Para ello es necesario utilizar un software
especial, denominado genéricamente, lenguajes de programación.
1.1.1 Lenguajes de bajo nivel
Lenguaje máquina: éste es el único lenguaje que entiende el ordenador, ya que
utiliza el alfabeto binario, es decir, 0 y 1. No es portable, lo que significa que un
mismo programa no puede ser utilizado en ordenadores de características
diferentes.
Lenguaje ensamblador: fue el primer intento de sustituir el lenguaje máquina por
otro más parecido a los que utilizan las personas. El lenguaje ensamblador
necesita un compilador, es decir, un programa que traduzca las instrucciones
escritas al lenguaje máquina, único lenguaje que el ordenador puede entender.
1.1.2 Lenguajes de alto nivel
Son posteriores a los de bajo nivel (por ejemplo, lenguajes como C,
PASCAL, COBOL, BASIC) y se crearon con los siguientes objetivos:
• Lograr la independencia del ordenador, ya que estos lenguajes sí son
portables.
• Aproximar aún más sus instrucciones al lenguaje humano, de modo que
los programas se puedan leer y escribir más fácilmente, sin cometer
errores.
• Suministrar librerías de rutinas, con las funciones de uso frecuente:
entrada/salida, manejo de tablas, manejo de ficheros, etc.; de este modo se
evita tener que crearlas cada vez que se necesiten.
Casi todos los lenguajes de alto nivel, deben ser compilados para obtener
el programa en código máquina. Pero, algunos de estos lenguajes como BASIC
no compilan sus programas, sino que utilizan un intérprete que va traduciendo
el programa para que el ordenador pueda ejecutarlo.
Las diferencias entre un compilador y un intérprete se pueden resumir
en:
1. el intérprete traduce y ejecuta cada línea del programa siguiendo la secuencia
del mismo; por el contrario, el compilador traduce el programa completo,
creando uno nuevo ya inteligible para el ordenador, llamado programa
objeto. Posteriormente, éste debe ser montado (linkado), operación que
4. LENGUAJE C Página 2
consiste en enlazar con las librerías de rutinas, para crear así un nuevo
fichero ejecutable por el ordenador, denominado programa ejecutable.
2. Otra diferencia, es que el intérprete ejecuta el programa, paso a paso hasta el
final o hasta encontrar un error, en cuyo caso se detendría la ejecución. Por
el contrario, el compilador traduce el programa completo antes de que se
pueda ejecutar
1.1.3 Lenguajes de cuarta generación
Hasta el momento, se habían creado únicamente lenguajes de propósito
general que no eran válidos para generar algunos programas específicos; por ello se
comenzaron a crear lenguajes más especializados y muy intuitivos, con lo que son
fáciles de utilizar. Como ejemplos podemos destacar:
1. SQL: se trata de un lenguaje que permite realizar consultas en una base de
datos.
2. 4GL: permite generar aplicaciones con ayuda de una gran cantidad de
módulos preprogramados en lenguaje C.
1.1.4 Lenguajes orientados a objetos
Los lenguajes de alto nivel se basaban principalmente en la programación
estructurada; sin embargo, los lenguajes orientados a objetos se centran en los datos,
objetos, indicando como han de ser y definiendo las operaciones a las que se les va a
someter. Ejemplos de estos lenguajes son: Visual Basic, C++, Visual C++, Smalltalk.
2 Creación de un programa
La creación de un programa se realiza en una serie de fases, que deben llevarse a
cabo de forma secuencial y ordenada:
1. Análisis del problema: se realiza un estudio detallado con el fin de definir el proceso
que se deberá seguir para lograr la automatización de la solución.
2. Búsqueda del algoritmo: en esta fase se diseña el algoritmo que permita resolver el
problema; para ello se utilizan organigramas o pseudocódigos. Se puede decir que es en
ésta fase donde realmente se resuelve el problema, ya que un buen algoritmo garantiza,
casi siempre, un perfecto funcionamiento del programa. Simbología de los
organigramas:
Se utiliza para representar el inicio y el fin de
Terminal un programa; también puede representar una
pausa o interrupción del programa.
Representar cualquier tipo de operación que se
Proceso
pueda realizar con los datos.
Se utiliza para representar una operación lógica
o una comparación de datos para que, en
función del resultado, el programa tome uno de
Decisión
los caminos existentes. Lo normal es que tenga
dos salidas, pero puede tener más, en cuyo caso
se denomina decisión múltiple.
5. LENGUAJE C Página 3
Entrada/Salida Simboliza la introducción de datos o la salida
de información a través de cualquier
periférico.
Líneas de flujo Indica la secuencia en la que se van a ejecutar
los pasos del programa.
• Codificación del programa: en esta fase se escribe, en el lenguaje de
programación elegido, el algoritmo obtenido en la fase anterior. El resultado
final será la creación de un fichero con las instrucciones necesarias para resolver
el problema, denominado programa fuente (extensión .cpp).
• Compilación del programa (Menú compile, opción Compile): una vez escrito
el programa fuente, éste se traduce mediante el compilador a código máquina,
apareciendo uno nuevo, denominado programa objeto (extensión .obj). Si en la
fase de codificación se hubieran cometido errores en la escritura de las
instrucciones del lenguaje de programación (errores de compilación), éstos
aparecerían en la compilación y tendrían que corregirse hasta conseguir un
programa objeto válido.
• Montaje o linkado (Menú compile, opción link): en esta fase se monta el
programa objeto con las librerías necesarias del lenguaje de programación para
formar el fichero ejecutable (extensión .exe).
• Fase de pruebas y ejecución (Menú Run, opción Run): el programa ejecutable
obtenido se somete a una serie de pruebas para detectar posibles errores de
funcionamiento (errores de ejecución); en ellas deben probarse todas las
posibilidades del programa.
• Fase de explotación y mantenimiento: esta fase se desarrolla diariamente con
el uso del programa. En ella, se realiza los cambios necesarios para solucionar
los errores que aparezcan y para adecuar el programa a las nuevas exigencias de
los usuarios.
3 Entorno de programación de BORLAND TURBO C++
Ejecuta la aplicación Turbo C++; posteriormente, abre una ventana de
documento nueva y escribe el siguiente programa:
/* Primer programa en C.
Visualización de un literal en pantalla */
#include <stdio.h>
void main( )
{
printf(“Bienvenido a la programación en C”);
}
Guarda el programa con el nombre de Bienveni. Compila el fichero (menú Compile /
opción compile), linka el fichero (menú Compile / opción link) y por último, ejecútalo
(menú Run / opción run)
6. LENGUAJE C Página 4
Abre una ventana de documento nueva y escribe el siguiente programa:
#include <stdio.h>
void main( )
{
int num;
printf("Introduce un entero: ");
scanf("%d",&num);
num=num+1;
printf("Incremento en una cantidad %d",num);
}
Guarda el programa con el nombre de Aumento. Compila el fichero (menú Compile /
opción compile), linka el fichero (menú Compile / opción link) y por último, ejecútalo
(menú Run / opción run)
4 Elementos principales de un programa en lenguaje C:
1. Los ficheros de cabecera, son propios del Lenguaje C y contienen las distintas
funciones del lenguaje.#include <stdio.h> posee las funciones printf() y scanf().
2. La función main( ). Todo programa en C debe contener la función principal
main( ), que es donde comienza el programa principal.
3. Un conjunto de instrucciones se encierra entre llaves{ }
4. Todas las instrucciones que ocupen una línea deben finalizar con el carácter “;”
5. Los comentarios se encierran entre /*…*/. P.e. /* Esto es un comentario*/
6. Instrucciones o sentencias, son las distintas acciones individuales que debe
ejecutar el ordenador
7. Las funciones son grupos de instrucciones que se ejecutan conjuntamente y
permiten resolver un pequeño problema. Todos los programas incluyen
funciones ya creadas (funciones de sistema) y a su vez, permiten crear nuevas
funciones (funciones de usuario) para disponer de ellas en el futuro
7. LENGUAJE C Página 5
Tipos de datos y declaración de variables:
A la hora de nombrar un dato, debe tenerse en cuenta que:
• Se puede utilizar cualquier carácter alfanumérico, pero siempre debe
comenzar con una letra. C diferencia las mayúsculas de las minúsculas.
• No se pueden utilizar espacios en blanco, por lo que es frecuente utilizar el
guión bajo ( _ ) para nombres compuestos.
• La longitud del nombre no puede ser superior a 32 caracteres.
• No se puede utilizar como nombre de dato, ninguna palabra clave reservada
del lenguaje C.
Tipos de datos:
• Carácter (char). Este dato estará constituido por un único carácter, que podrá ser
uno cualquiera de la tabla ASCII.
• Entero (int). Este podrá ser cualquier número entero cuyo valor esté comprendido
entre –32768 y 32767.
int long. Entero largo, comprendido entre –2 147 483 648 y 2 147 483 647.
int unsigned. Permite declarar el dato sin signo, está entre 0 y 65 535.
Ambos se pueden usar también conjuntamente.
• Punto flotante (float). El valor de este dato podrá ser cualquier número con
decimales; habrá que tener en cuenta que el separador decimal en C es el carácter
punto “.”
Instrucciones de entrada y salida de información:
printf(cadena_de_formato,[lista_de_argumentos]);
Esta función permite visualizar información en pantalla (la lista de argumentos es
opcional por lo que se muestra entre corchetes).
Ej: printf(“el número introducido es %d”,dato);
scanf(formato,argumentos);
Esta función indica la variable a la que se le asignará el dato introducido desde el
teclado. A diferencia de printf, scanf sólo puede tener un argumento, que deberá estar
precedido del carácter &
Ej: scanf(“%d”,&dato);
Tanto printf() como scanf(), necesitan del fichero de cabecera stdio.h
La cadena de formato de printf y el formato de scanf, deben estar delimitados
por comillas dobles (“).
8. LENGUAJE C Página 6
TIPO DE DATOS O VARIABLE ESPECIFICACIÓN DE FORMATO
Entero con signo %d
Entero sin signo %u
Entero largo con signo %ld
Entero largo sin signo %lu
Flotante %f
Carácter %c
Secuencia de
Acción
Escape
n Provoca un salto de línea, situando el cursor al principio de la siguiente línea.
t Sitúa el cursor en la siguiente parada del tabulador.
a Emite un aviso sonoro.
” Permite obtener, en el resultado, el carácter comilla doble (“).
’ Permite visualizar el carácter comilla simple (‘).
Se visualizará, en el resultado, el carácter barra invertida ().
b Hace retroceder el cursor un espacio.
delay(milisegundos); Hace una pausa de los milisegundos indicados.
getchar(); Detiene la ejecución del programa hasta que se pulse una tecla.
[variable_carácter=]getch(); Detiene la ejecución del programa hasta que se
pulse una tecla, muestra el carácter pulsado en pantalla.
[variable_carácter=]getche(); Detiene la ejecución del programa hasta que
se pulse una tecla, no muestra el carácter pulsado en la pantalla.
clrscr(); Limpia la pantalla.
getch(), getche() y clrscr() requieren el fichero de cabecera #include <conio.h>
Operadores aritméticos básicos:
Operación Operador Acción
Suma + Calcula la suma de dos o más variables numéricas.
Diferencia - Calcula la diferencia de dos variables numéricas.
Multiplicación * Multiplica el valor de las variables numéricas.
División / Calcula la división de dos variables numéricas.
% Calcula el módulo de una división, es decir, el resto de una
Módulo o resto
división de números enteros.
Incremento ++ Incrementa una variable en una unidad.
Decremento -- Decrementa una variable en una unidad.
Asignación +=, -=, *=, / Realiza la operación indicada por el operador aritmético y asigna
compleja =, %= el resultado de una de las variables implicadas en la operación.
9. LENGUAJE C Página 7
Instrucción de asignación:
La operación de asignación consiste en dar valor a una variable (se realiza
mediante el signo “=” y la operación de comparación de igualdad con “= =”).
Operadores relacionales:
Operador Símbolo Descripción
La expresión a>b toma el valor verdadero si a es mayor que
Mayor que
> b, y falso en caso contrario.
La expresión a<b toma el valor verdadero si a es menor que
Menor que
< b, y falso en caso contrario.
La expresión a>=b toma el valor verdadero si a es mayor o
Mayor o igual que
>= igual que b, y falso en caso contrario.
La expresión a<=b toma el valor verdadero si a es menor o
Menor o igual que
<= igual que b, y falso en caso contrario.
La expresión a = = b toma el valor verdadero si a es igual
Igual que
== que b, y falso en caso contrario.
La expresión a != b toma el valor verdadero si a es distinto
Distinto que
!= que b, y falso en caso contrario.
Operadores lógicos:
Operador Símbolo Descripción
Es el operador negación, ya que niega la expresión
Operador No
! encerrada entre paréntesis que viene a continuación.
Este operador permite relacionar dos o más expresiones en
Operador Y && una condición, devolviendo verdadero sólo cuando se
cumplan todas las expresiones.
Este operador permite relacionar dos o más expresiones en
Operador O || una condición, devolviendo verdadero cuando, al menos
una de las expresiones sea válida.
Estructuras selectivas en lenguaje C:
Instrucción if. Evalúa una condición y, en caso de ser cierta, ejecutará la sentencia-1,
en caso contrario, seguirá ejecutándose el programa o se realizará la sentencia-2. los
corchetes muestran parámetros opcionales de una función.
if(condición)
sentencia-1;
[else
sentencia-2;]
10. LENGUAJE C Página 8
Los bloques de instrucciones deben empezar y terminar con llaves { }.
Instrucción switch. Es una sentencia selectiva múltiple; es decir, el programa
comparará el valor de una variable con los de una lista de valores y, una vez encontrada
la coincidencia, ejecutará la instrucción o el conjunto de sentencias que hayan asociado
a dicho valor.
switch(var){
case valor1:
sentencia-1;
break;
[case valor2:
sentencia-2;
break;]
…
[default:
sentencias-defecto;]
}
Estructuras repetitivas:
Instrucción while. La principal característica de la instrucción while es que la
condición se evalúa antes de ejecutar la primera instrucción del cuerpo del bucle. El
formato general es:
while(condición){
sentencia-1;
[sentencia-2;
…]
}
Instrucción do … while. Lo primero que se realiza es la iteración del bucle y,
posteriormente, se evalúa la condición. Mientras esta resulte verdadera, el programa
realizará una nueva iteración. El formato general es:
do{
sentencia-1;
[sentencia-2;
…]
}while(condición);
11. LENGUAJE C Página 9
Instrucción for. La instrucción for es un bucle con un número de iteraciones definidas
previamente; por lo tanto, se utiliza en aquellos casos en los que se sabe el número
exacto de veces que debe repetirse el bucle. For presenta una ventaja con respecto a
while y es que controla automáticamente el contador de iteraciones. El formato general
es:
for(inicio_variable;condición;incremento_variable)
{
sentencia-1;
[sentencia-2;
…]
}
5 Ejemplos de programas en C
Ejemplo1:
/* Tipos de variables tipos.cpp */
#include <stdio.h>
main(){
char letra = 'a';
int entero = 543;
float real = 11.1f;
double realDoble = 66.123456789;
printf( "Letra = %cn", letra );
printf( "Entero = %dn", entero);
printf( "Real = %fn", real);
printf( "Real_Doble = %2.9fn", realDoble );
}
Ejemplo2:
/* Cálculo de la media aritmética de dos enteros media.cpp */
#include <stdio.h>
main()
{
int num1=5, num2=2;
float media;
media=(num1+num2)/2;
printf(“Valores: %d y %d”,num1,num2);
printf(“nMedia: %f”,media);
12. LENGUAJE C Página 10
}
Ejemplo3:
/* Carácter incrementado caracter.cpp */
#include <stdio.h>
main()
{
char caracter=’a’;
int unsigned incremento;
printf(“Carácter inicial: %c”caracter);
printf(“nIntroduce un entero entre 1 y 25: ”);
scanf(“%u”,&incremento);
caracter = caracter+incremento;
printf(“Carácter incrementado: %c”,caracter);
}
13. LENGUAJE C Página 11
6 Actividades de la unidad:
1º. Escribe un programa que visualice la suma de 2 números enteros introducidos por
teclado.
2º. Calcular y visualizar el cuadrado de un número entero introducido por teclado.
4º. Escribe un programa que pida un número entero y visualice si es par o impar.
5º. Introducir un número entero por teclado y:
- Si es menor de cero, visualizar su cuadrado.
- Si es mayor de cero, visualizar su cubo.
- Si es cero, visualizar “Cero”.
6º. Introducir un número entero por teclado y que el programa informe si es divisible
por 5.
7º. Escribe un programa que pida por teclado 2 números enteros y visualice cual es
menor.
8º. Escribe un programa que pida un número entero (comprendido entre 1 y 7) y
visualice el día de la semana.
9º. Visualizar los números enteros pares comprendidos entre dos números introducidos
desde el teclado.
10º. Escribe un programa que pida un número entero por teclado (validar mayor de
cero) y visualice la suma de los números enteros comprendidos entre cero y el número
introducido.
11º. Escribe un programa que pida por teclado 2 números enteros mayores que 0
(validar la entrada) y visualice por pantalla los números impares comprendidos entre los
dos números dados. (Suponemos que el primer número es menor que el segundo. Por
ejemplo: si introducimos 2 y 7 debe visualizar 3 5 7).
12º. Visualizar la media aritmética de 5 números enteros introducidos por teclado.
13º. Visualizar la tabla de multiplicar de un número entero introducido por teclado.
14º. Escribe un programa que lea por teclado 12 números enteros y visualice cuántos
son positivos.
15º. Escribe un programa que pida por teclado un número entero (validar mayor de
cero) y visualizar si es divisible por 2, 3 o 5.