Programa y lenguajes.

 

                Un programa de ordenador es una secuencia de instrucciones, escritas en un determinado lenguaje de programación.

 

                Existen tres tipos de lenguajes de programación :

 

n     Lenguajes máquina. Son los únicos lenguajes que los ordenadores entienden. Se trata de secuencias de 0 y 1 (código binario), que indican las operaciones y las celdas de memoria en que aquellas se realizan. Son complicados para el programador.

 

n    Lenguajes de bajo nivel (ensambladores). Son una representación simbólica de las instrucciones en código binario. Son más fáciles de entender. Posteriormente necesitan un programa ensamblador que los traduzca a código máquina.

 

n    Lenguajes de alto nivel. Facilitan la escritura de los programas, por su mayor parecido a los lenguajes humanos. Requieren un programa especial para traducir las instrucciones del lenguaje a código binario. Según como se efectúa esta traducción, tendremos un compilador (antes de ejecutarlo traduce íntegro el programa) o un intérprete (va traduciendo instrucción a instrucción, no traduciendo la siguiente hasta que la anterior se ha ejecutado). C es un lenguaje compilado.

 

Símbolos usados en los algoritmos, diagramas de flujo u organigramas,

 

El diagrama de flujo es la representación gráfica de las principales acciones que el programa debe realizar.

Es el paso previo a la escritura de cualquier programa.

Los símbolos que usaremos son :

 

Inicio y fin, escribiendo dentro del
 óvalo la opción de que se trate
Introducción de datos
Asignación de variables y operaciones
Escritura en pantalla

Bucles
Bifurcaciones
Conectores y subrutinas
Unen los anteriores símbolos, indicando el
sentido del flujo. Siempre rectas.

 

 

          

 

 

TEMA 10   INTRODUCCIÓN AL LENGUAJE C

CONSIDERACIONES GENERALES.

                Todas las sentencias (instrucciones) se escriben en minúsculas y acaban en ;.

Es costumbre escribir las variables en minúsculas y las constantes en mayúsculas.

ESTRUCTURA DE UN PROGRAMA EN C

#include <stdio.h>

Encabezamiento. Se informa al compilador que inserte en esa posición 

el archivo stdio.h. Este contiene las funciones de entrada/salida por 

pantalla.  

void main()  

La función main indica dónde empieza el programa  

{

 

}

Llaves que delimitan el programa  

VARIABLES.

                Son partes de la memoria donde se guardan datos, identificadas por un nombre, que debe empezar por una letra, y que sólo puede contener letras, números y el carácter _  Se deben dar nombres representativos de lo que en ellas se guarda.

                Siempre se declaran previamente a su uso. El ordenador distingue entre mayúsculas y minúsculas.

                Los tipos principales son:

 

 

Ejemplos:

 

Los tipos pueden variar de un compilador a otro. Valores típicos son:

 

 

DECLARACIÓN DE VARIABLES.

       Se declaran al comienzo del programa, tras la llave de apertura, en la forma: 

tipovariable nombrevariable;

ASIGNACIÓN DE VALORES A LAS VARIABLES.

        

                Una vez definidas, se les da valor en la forma: nombrevariable = valor;

                Puede darse valor en el momento de la definición: int nombrevariable = valor;    En el caso del tipo char, el carácter se escribe entre comillas simples. 

Podemos escribir nombrevariable1 = nombrevariable2; para conseguir que la variable de la izquierda pase a valer lo que vale la variable de la derecha.

                Cuando queremos contar podemos poner nombrevariable = nombrevariable + 1; con lo que  cada vez que se ejecute la instrucción se suma 1 en la variable nombrevariable

               

Ejemplos:             

 

de tipo real:           float pi;

pi=3.14159;           ( los decimales se indica con . y no con , )

                de tipo entero:      int numero;

                                               numero=23;

                de tipo char:         char letra;

                                               letra=’a’;               ( con comillas simples )

ENTRADA POR TECLADO.

                Se realiza mediante la función scanf(“formato”,&nombrevariable); donde:

 

 

La función scanf está en el fichero de cabecera stdio.h

 

Ejemplos:

 

                Programa que pida al usuario la edad:

 

#include <stdio.h>

void main()

{int edad;

scanf("%d",&edad);

}

 

Programa que pida al usuario su altura en metros:

 

#include <stdio.h>

void main()

{   float altura;

     scanf("%f",&altura);

}

 

Programa que pida al usuario una letra:

 

#include <stdio.h>

void main()

{    char letra;

     scanf("%c",&letra);

}


 

ESCRITURA EN PANTALLA.

 

                Se realiza mediante la función printf, cuya sintaxis es : printf(“formato”,variable);

 

                Ejemplos:

 

cadena literal: printf(“Hola”);      

no hay que especificar formato.

variable: printf(“El número es %d”,num)

% d indica que en su posición se insertará el valor de la variable num, que posteriormente se indica

varias variables: printf(“la suma de %d y %d es                             %d”,num1,num2,num1+num2);         

las cadenas de formato deben concordar con el tipo de cada variable

 

Si en vez de entera fuesen variables de tipo real, en la cadena de formato escribiríamos %f y si fuese char, %c

 

                Como ocurría con la función scanf, la función printf se encuentra en el fichero de cabecera stdio.h

 

Ejemplos:

 

Programa que pida al usuario la edad y la muestre posteriormente en pantalla:

 

#include <stdio.h>

void main()

{        int edad;

          printf(“¿Cuál es tu edad?”);

scanf("%d",&edad);

printf("Tu edad es %d",edad);

}

 

Programa que pida al usuario su altura en metros, mostrándola posteriormente en pantalla:

 

#include <stdio.h>

void main()

{        float altura;

printf(“¿Cuánto mides?”);

scanf("%f",&altura);

printf("Tu altura es %f",altura);

}

 

Programa que pida al usuario una letra y que posteriormente la muestre:

 

#include <stdio.h>

void main()

{        char letra;

printf("Escribe un carácter ");

scanf("%c",&letra);

printf("El carácter introducido es %c",letra);

}


Observación:
Si ya hemos introducido algún dato, para que scanf funcione correctamente con las variables de tipo char, es necesario vaciar el buffer. Para ello usamos la función fflush(stdin); perteneciente al fichero de cabecera conio.h

COMENTARIOS.

                Son muy útiles para revisiones posteriores del programa.

                Se escriben entre /* y */

 

                Ejemplo: /* Esto es un comentario */

SECUENCIAS DE ESCAPE.

                Realizan determinadas acciones. Las más comunes son:

 

                \n            pasa a nueva linea.

                \t             coloca el cursor en la siguiente tabulación

                \b            retrocede el cursor un espacio

                \a            emite un aviso sonoro

                \”            para escribir el carácter “

                \’             para escribir el carácter ‘

                \\             para escribir el carácter \

               

                Ejemplos:

 

#include <stdio.h>

void main()

{printf("Hola, ¿qué tal?");

}

#include <stdio.h>

void main()

{printf("Hola,\n¿qué tal?");

                                              }

 

#include <stdio.h>

void main()

{printf("Hola,\t¿qué tal?");

}

 

CONSTANTES.

                Son aquellos datos cuyo valor no se modifica a lo largo del programa. Por ejemplo, los días de un mes, el valor de π, etc.

                Se suelen escribir en mayúsculas.

                La forma de definirlas es:   const tipo nombreconstante=valor;                                en donde tipo puede ser int, float, char, etc.

 

Ejemplo:

#include <stdio.h>

void main()

{              const float PI=3.14159;

float radio;

printf("¿Radio?");

scanf("%f",&radio);

printf("Longitud=%f",2*PI*radio);

}

OPERADORES ARITMÉTICOS.

 

OPERACIÓN

MATEMÁTICAS

C

SUMA

+

+

RESTA

-

-

MULTIPLICACIÓN

·

*

DIVISIÓN

/

/

RESTO DE DIVISIÓN ENTERA

Módulo

%

 

La raíz cuadrada se realiza mediante la función sqrt(número); que se encuentra en el fichero de cabecera math.h

 

Ejemplos:

 

/*division entera*/

#include <stdio.h>

void main()

{  int dividendo,divisor,cociente,resto;

    printf("Dame el dividendo ");scanf("%d",&dividendo);

    printf("Dame el divisor ");scanf("%d",&divisor);

    cociente=dividendo/divisor;printf("Cociente= %d",cociente);

    resto=dividendo%divisor;printf("\nResto= %d",resto);

}

 

Si queremos evitar el redondeo a entero del ejemplo anterior, podemos transformar temporalmente uno de los números involucrados en la operación, a real y, lógicamente, guardar este resultado en una variable real:

 

#include <stdio.h>

void main()

{    int dividendo,divisor;

float cociente;

printf("¿Dividendo?");scanf("%d",&dividendo);

printf("¿Divisor?");scanf("%d",&divisor);

cociente=(float)dividendo/divisor;                                    /*aquí transformamos temporalmente dividendo a real*/

printf("Cociente=%f",cociente);                                       /*obtenemos: Cociente=6.500000*/

}

 

/*raíz cuadrada*/                                                                    la salida de este programa sería: 2.000000
#include <stdio.h>
#include <math.h>
void main()
{printf ("%f",sqrt(4.0));
}

 

OPERADORES DE RELACIÓN

                Se utilizan para comparar expresiones. Por ejemplo, para saber si hace calor nos podríamos preguntar si la temperatura es mayor de 25º. Para saber si un alumno ha suspendido, si su nota es menor de 5, etc.

 

Mayor

>

Menor

<

Igual

==

Distinto

!=

Mayor o igual

>=

Menor o igual

<=

 

            Su utilización la veremos al estudiar la instrucción if

OPERADORES LÓGICOS.

            Se utilizan cuando necesitamos realizar varias comparaciones en una sola instrucción. Por ejemplo, si la nota de un alumno es mayor de 6.5 y menor o igual a 8, tiene un notable.

 

Y

&&

O

||

No

!

 

            Utilizaríamos && cuando queremos que se cumplan 2 (ó más) condiciones: ?se necesita ingeniero menor de 30 años?. La persona que opte al empleo tiene que ser ingeniero y además tener menos de 30 años.

            Utilizaríamos || cuando basta con que se cumpla alguna condición: ?se necesita ingeniero o llevar trabajando más de 5 años en puesto similar?. A este anuncio pueden optar los ingenieros y quienes no siéndolo lleven trabajando más de 5 años.

            Utilizaríamos ! cuando queremos negar algo: ?Se vende piso. Abstenerse agencias.? Es decir, no queremos que llamen las agencias. La expresión sobre la que actúa este operador va entre paréntesis.

 

            La utilización de estos operadores la veremos al estudiar la instrucción if

 

TOMA DE DECISIONES

            Consiste en que el programa siga uno u otro camino dependiendo de que se cumpla o no una determinada condición. Existen dos estructuras selectivas: IF  y SWITCH.

 

Su sintaxis es:         if (condición) instrucción 1;                 es decir, la instrucción sólo se ejecutará si se cumple la condición.

            La condición puede ser simple (sólo con un operador de relación) o compuesta (con varios operadores de relación unidos mediante operadores lógicos), y siempre va entre paréntesis.

 

 

            Ejemplo:          #include <stdio.h>

void main()

                                   {

float nota;

printf("Dime la nota ");scanf("%f",¬a);

if (nota>=5) printf ("Enhorabuena");

printf("\nAdios");

}

 

 

 

                dos posibles entradas serían las notas 4 y 6, con lo que obtendríamos:

 

Dime la nota 4

Adios

 

 

Dime la nota 6

Enhorabuena

Adios

 

 

            La instrucción if admite otra sintaxis:     if (condición) instrucción1;

                                                                       else instrucción 2;              en caso de cumplirse la condición, se realiza la instrucción 1 (la instrucción 2 no) y en caso de no cumplirse la condición, se realiza la instrucción 2 (y no la 1).

 

Si instrucción1 o instrucción2 no son instrucciones simples, sino varias instrucciones, las encerraríamos entre llaves:    

                                if (condición)

{  instrucción1;

                                       instrucción2;

                                               ...       ;

                                   }         

 

Ejemplo:

#include <stdio.h>

void main()

{

float nota, horas;

printf("Dime la nota ");scanf("%f",¬a);

if (nota>=5) printf ("Enhorabuena");

else {printf("Estudia más");

       printf("\n¿Cuánto estudiaste?");

       scanf("%f",&horas);

       printf("Pues %f horas es poco tiempo",horas);

             }

}

La posibles salidas serían:

 

Dime la nota 4

Estudia más

¿Cuánto estudiaste?3

Pues 3 horas es poco tiempo

 

 

Dime la nota 6

Enhorabuena

 

Ejemplo (con operadores lógicos). Programa que pida una letra indicando si es vocal o consonante:

 

#include <stdio.h>

void main()

{     char letra;

printf("Introduce una letra ");scanf("%c",&letra);

if (letra=='a' || letra=='e' || letra=='i' || letra=='o' || letra=='u' || letra=='A'

|| letra=='E' || letra=='I' || letra=='O' || letra=='U') printf("VOCAL");

else printf("CONSONANTE");

}


 

Ejemplo (también con operadores lógicos). Programa que pida la nota y muestre la correspondiente apreciación, según la escala:                        

0=nota<4.5     Insuficiente

4.5=nota<6     Suficiente

6=nota<8.5     Notable

8.5=nota=10   Sobresaliente

 

#include <stdio.h>

void main()

{   float nota;

printf ("Introduce la nota ");scanf ("%f",¬a);

if (nota<0 ||nota>10) printf ("Imposible");

else if (nota>=0 && nota<4.5) printf ("Insuficiente");

    if (nota>=4.5 && nota<5.5) printf("Suficiente");

            else if (nota>=5.5 && nota<6) printf ("Bien");

                        else if (nota>=6 && nota<8.5) printf ("Notable");

                                               else if (nota>=8.5) printf ("Sobresaliente");

}

 

 


 

VOLVER