IES. Antonio Serna (Albatera)  Curso académico 2011-2012        2º Bachillerato
1 Iniciación a la programación en lenguaje C...................................................................1   Algorit...
LENGUAJE C                                                                       Página 11 Iniciación a la programación en...
LENGUAJE C                                                                      Página 2          consiste en enlazar con ...
LENGUAJE C                                                                       Página 3   Entrada/Salida                ...
LENGUAJE C                                                                     Página 4Abre una ventana de documento nueva...
LENGUAJE C                                                                         Página 5Tipos de datos y declaración de...
LENGUAJE C                                                                            Página 6    TIPO DE DATOS O VARIABLE...
LENGUAJE C                                                                        Página 7Instrucción de asignación:      ...
LENGUAJE C                                                                    Página 8Los bloques de instrucciones deben e...
LENGUAJE C                                                                   Página 9Instrucción for. La instrucción for e...
LENGUAJE C                                        Página 10}Ejemplo3:/* Carácter incrementado  caracter.cpp */#include <s...
LENGUAJE C                                                                   Página 116 Actividades de la unidad:1º. Escri...
Upcoming SlideShare
Loading in …5
×

Apuntes c

383 views

Published on

  • Be the first to comment

  • Be the first to like this

Apuntes c

  1. 1. IES. Antonio Serna (Albatera) Curso académico 2011-2012 2º Bachillerato
  2. 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.........................................................................22 Creación de un programa................................................................................................23 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 }....................................................................................................................................44 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:.................................................................................................85 Ejemplos de programas en C..........................................................................................96 Actividades de la unidad:.............................................................................................11
  3. 3. LENGUAJE C Página 11 Iniciación a la programación en lenguaje CAlgoritmos y programas Se puede definir un algoritmo como la sucesión de pasos ordenados que sedeben realizar desde que se plantea un problema, hasta que éste queda perfectamenteresuelto. Por ejemplo, la elaboración de una tortilla francesa, conlleva una serie depasos: 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 quepermiten resolver el problema deben escribirse en un determinado lenguaje deprogramació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 programaspropios para resolver distintos problemas. Para ello es necesario utilizar un softwareespecial, 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. 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 ejecutar1.1.3 Lenguajes de cuarta generación Hasta el momento, se habían creado únicamente lenguajes de propósitogeneral que no eran válidos para generar algunos programas específicos; por ello secomenzaron a crear lenguajes más especializados y muy intuitivos, con lo que sonfá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ónestructurada; 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 asometer. 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 acabo de forma secuencial y ordenada:1. Análisis del problema: se realiza un estudio detallado con el fin de definir el procesoque 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 elproblema; 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 losorganigramas: 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. 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 dedocumento 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. 6. LENGUAJE C Página 4Abre 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. 7. LENGUAJE C Página 5Tipos 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 esopcional 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 elteclado. A diferencia de printf, scanf sólo puede tener un argumento, que deberá estarprecedido 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 delimitadospor comillas dobles (“).
  8. 8. LENGUAJE C Página 6 TIPO DE DATOS O VARIABLE ESPECIFICACIÓN DE FORMATOEntero con signo %dEntero sin signo %uEntero largo con signo %ldEntero largo sin signo %luFlotante %fCarácter %cSecuencia 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 sepulse una tecla, muestra el carácter pulsado en pantalla.[variable_carácter=]getche(); Detiene la ejecución del programa hasta quese 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 unaMó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. 9. LENGUAJE C Página 7Instrucción de asignación: La operación de asignación consiste en dar valor a una variable (se realizamediante 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. loscorchetes muestran parámetros opcionales de una función. if(condición) sentencia-1; [else sentencia-2;]
  10. 10. LENGUAJE C Página 8Los bloques de instrucciones deben empezar y terminar con llaves { }.Instrucción switch. Es una sentencia selectiva múltiple; es decir, el programacomparará el valor de una variable con los de una lista de valores y, una vez encontradala coincidencia, ejecutará la instrucción o el conjunto de sentencias que hayan asociadoa 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 lacondición se evalúa antes de ejecutar la primera instrucción del cuerpo del bucle. Elformato 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 programarealizará una nueva iteración. El formato general es: do{ sentencia-1; [sentencia-2; …] }while(condición);
  11. 11. LENGUAJE C Página 9Instrucción for. La instrucción for es un bucle con un número de iteraciones definidaspreviamente; por lo tanto, se utiliza en aquellos casos en los que se sabe el númeroexacto de veces que debe repetirse el bucle. For presenta una ventaja con respecto awhile y es que controla automáticamente el contador de iteraciones. El formato generales: for(inicio_variable;condición;incremento_variable) { sentencia-1; [sentencia-2; …] }5 Ejemplos de programas en CEjemplo1:/* 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. 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. 13. LENGUAJE C Página 116 Actividades de la unidad:1º. Escribe un programa que visualice la suma de 2 números enteros introducidos porteclado.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 divisiblepor 5.7º. Escribe un programa que pida por teclado 2 números enteros y visualice cual esmenor.8º. Escribe un programa que pida un número entero (comprendido entre 1 y 7) yvisualice el día de la semana.9º. Visualizar los números enteros pares comprendidos entre dos números introducidosdesde el teclado.10º. Escribe un programa que pida un número entero por teclado (validar mayor decero) y visualice la suma de los números enteros comprendidos entre cero y el númerointroducido.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 losdos números dados. (Suponemos que el primer número es menor que el segundo. Porejemplo: 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ántosson positivos.15º. Escribe un programa que pida por teclado un número entero (validar mayor decero) y visualizar si es divisible por 2, 3 o 5.

×