UNIDAD 2 Introducción Al Lenguaje de Programación en Ingenieria
UNIDAD 2 Introducción Al Lenguaje de Programación en Ingenieria
UNIDAD 2 Introducción Al Lenguaje de Programación en Ingenieria
Introducción al Lenguaje
de Programación Actual de Uso en
Ing. Civil
Directivas de un preprocesador;
Declaraciones globales;
La función main( ) ; int main( ).
Funciones definidas por el usuario;
Comentarios del programa.
EJEMPLO:
/ * Programa de saludo * /
#include <stdio.h>
/* Este programa imprime: Bienvenidos a la programación en C */
int main ( )
{
printf (“Bienvenido a la programación en C \n”);
return 0;
}
2.1 Estructura de un Programa.
La directiva #include de la primera línea es necesaria para que el
programa tenga salida. Se refiere a un archivo externo denominado
stdio.h en el que se proporciona la información relativa a la función
printf ( ). Obsérvese que los ángulos < y > no son parte del
nombre del archivo; se utilizan para indicar que el archivo es un
archivo de la biblioteca estándar C.
Bienvenido a la programación en C
El punto y coma (;) es requerido por C cada vez que una sentencia
termine, no es necesario que este al final de una línea. Se pueden
poner varias sentencias en la misma y se puede hacer que una
sentencia se extienda sobre varias líneas.
2.1 Estructura de un Programa.
#define TAM_LINEA 65
Declaraciones globales
Las declaraciones globales indican al compilador que las funciones
definidas por el usuario o variables así declaradas son comunes a todas
las funciones de su programa. Las declaraciones globales se sitúan antes
de la función main(). Si se declara global una variable Grado_clase del
tipo
int Grado_clase;
/*Definición de macros */
#define MICONST1 0.50
#define MICONST2 1.75
/* Declaraciones globales */
int Calificaciones;
main ()
...
}
2.1 Estructura de un Programa.
Función main ()
Cada programa C tiene una función main() que es el punto de entrada al
programa. Su estructura es:
main()
{
... bloque de sentencias
}
Las sentencias incluidas entre las llaves {…} se denominan bloque. Un
programa debe tener sólo una función main(). Si se intenta hacer dos
funciones main() se produce un error. Además de la función main(), un
programa C consta de una colección de funciones.
Las variables y constantes globales se declaran y definen fuera de la
definición de las funciones, generalmente en la cabecera del programa,
antes de main(), mientras que las variables y constantes locales se
declaran y definen en la cabecera del cuerpo o bloque de la función
principal, o en la cabecera de cualquier bloque.
2.1 Estructura de un Programa.
Las sentencias situadas en el interior del cuerpo de la función main(), o
cualquier otra función, deben terminar en punto y coma.
Todas las funciones tienen nombre y reciben una lista de valores. Se puede
asignar cualquier nombre a su función, pero normalmente se procura que
dicho nombre describa el propósito de la función.
void trazarcurva();
2.1 Estructura de un Programa.
Una declaración de función indica al compilador el nombre de la función
por el que ésta será invocada en el programa. Si la función no se define, el
compilador informa de un error. La palabra reservada void significa que la
función no devuelve un valor.
#include <stdio.h>
void visualizar ();
int main()
{
visualizar();
return 0;
void visualizar()
}
2.1 Estructura de un Programa.
Los principales archivos de cabecera estándar son:
Comentarios
Un comentario es cualquier información que se añade a su archivo fuente para
proporcionar documentación de cualquier tipo. El compilador ignora los
comentarios, no se realiza ninguna tarea concreta.
Todo el texto situado entre las dos secuencias es un comentario ignorado por el
compilador.
/*
Programa : PRUEBA1.C
Programador : Pepe Mortimer
Descripción : Primer programa C
Fecha de creación : Agosto 2014
Revisión : Ninguna
*/
1. Constantes enteras.
2. Constantes reales.
3. Constantes caracteres.
4. Constantes de cadena.
2.2 Constantes, Variables y Tipos de
Datos.
Constantes enteras.
Las constantes enteras requieren seguir unas determinadas reglas:
2. Para forzar un valor al tipo long, determinar con una letra L o l. Por ejemplo
1024 es un tipo entero, 1024L es un tipo largo (long).
3. Para forzar un valor al tipo unsigned, terminarlo con una letra mayúscula U.
Por ejemplo, 4352U.
Se pueden combinar sufijo L (l), que significa long (largo), o bien U (u),
significa unsigned (sin signo).
3456UL
2.2 Constantes, Variables y Tipos de
Datos.
Constantes reales
Una constante flotante representa un número real; siempre tiene signo y
representan aproximaciones en lugar de valores exactos.
float 4 bytes
double 8 bytes
long double 10 bytes (se puede cambiar según el compilador)
2.2 Constantes, Variables y Tipos de
Datos.
Constantes caracteres
Una constante de carácter (char) es un carácter del código ASCII encerrado en
apóstrofos.
Así, por ejemplo, el carácter sigma (Σ), código ASCII 228, hexadecimal E4, se
representa mediante el prefijo \x y el número hexadecimal del código ASCII. Por
ejemplo:
Un carácter que se lee utilizando una barra oblicua (\) se llama secuencia o
código de escape. La siguiente tabla muestra algunas secuencias de escape y
su significado.
2.2 Constantes, Variables y Tipos de
Datos.
2.2 Constantes, Variables y Tipos de
Datos.
/* Programa: Pruebas código de escape */
#include<stdio.h>
int main ()
printf(“%c %c”,alarma,bs);
return 0;
}
2.2 Constantes, Variables y Tipos de
Datos.
Aritmética con caracteres C
char c;
c = ‘T’ + 5 /* suma 5 al carácter ASCII */
int j = ‘p’
Se puede escribir una cadena en varias líneas, terminando cada línea con: “\”
Para representar valores nulos, C define el símbolo NULL como una constante
en diversos archivos de cabecera (normalmente stdef.h, stdio.h, stdlib.h y
string.h).
#define NULL 0
‘Z’ “Z”
2.2 Constantes, Variables y Tipos de
Datos.
El primer ‘Z’ es una constante de carácter simple con una longitud de 1, y el
segundo “Z” es una constante de cadena de caracteres también con una
longitud de 1.
#define NUEVALINEA \n
#define PI 3.141592
#define VALOR 54
Las definiciones const especifican tipos de datos, terminan con punto y coma y se
inicializan como las variables.
2.2.2 Variables
En C una variable es una posición con nombre en memoria donde se almacena un
valor de un cierto tipo de dato. Las variables pueden almacenar todo tipo de
datos: cadenas, números y estructuras. Una constante, por el contrario, es una
variable cuyo valor no puede ser modificado.
char Respuesta;
2.2 Constantes, Variables y Tipos de
Datos.
significa que se reserva espacio en memoria para Respuesta; en este caso, un
carácter ocupa un solo byte.
Tipo variable
Ejemplos:
long dNumero
double HorasAcumuladas
float HorasPorSemana
#include <stdio.h>
Int MiNumero;
Int main()
{
printf(“¿Cuál es mi numero favorito?”);
scanf(“%d”,&MiNumero);
Return 0;
}
...
Int main()
{
int i;
...
for (i = 0; i < 9; i++)
{
Doublé suma;
...
}
}
2.2 Constantes, Variables y Tipos de
Datos.
Inicialización de variables
expresión: Es cualquier expresión valida cuyo valor es del mismo tipo que tipo.
Ejemplos:
char barra ;
barra = ‘/ ‘ ;
2.2 Constantes, Variables y Tipos de
Datos.
Declaración o definición
La diferencia entre declaración y definición es sutil.
Una declaración introduce un nombre a una variable y asocia un tipo con la
variable.
Variables locales.
Variables globales.
Variables dinámicas.
2.2 Constantes, Variables y Tipos de
Datos.
Variables Locales.
Las variables locales son aquellas definidas en el interior de una función y son
visibles solo en esa función específica. Las reglas por las que se rigen las variables
locales son:
1. En el interior de una función, una variable local no puede ser modificada por
ninguna sentencia externa a la función.
2. Los nombres de las variables locales no han de ser únicos. Dos, tres o más
funciones pueden definir variables de nombre interruptor. Cada variable es
distinta y pertenece a la función en que está declarada.
#include <stdio.h>
Valor = a+b+c;
...
}
2.2 Constantes, Variables y Tipos de
Datos.
La memoria asignada a una variable global permanece asignada a través de la
ejecución del programa, tomando espacio valido según se utilice.
Por esta razón, se debe evitar la utilización de muchas variables globales dentro
de un programa.
Otro problema que surge con las variables globales es que una función puede
asignar un valor específico a una variable global.
La diferencia entre una variable local y una global es que la variable dinámica se
crea tras su petición y no automáticamente, como las variables locales, es decir a
su voluntad y se libera cuando ya no se necesita.
2.2.3. Entradas y Salidas
Entrada
La entrada de datos a un programa puede tener diversas fuentes, teclado,
archivos en disco, etc. La entrada que consideramos ahora es por medio
del teclado, asociado al archivo estándar de entrada stdin.
La salida es:
Nombre introducido: Juan
2.2.3. Entradas y Salidas
La biblioteca de C tiene una función específica para captar una cadena
de caracteres, la función gets(). Capta del dispositivo estándar de entrada
una cadena de caracteres, termina la captación con un retorno de carro.
gets (variable_cadena);
2.2.3. Entradas y Salidas
Tanto con scanf() como con gets(), el programa inserta al final de la
cadena el carácter que indica el fin de cadena, el carácter nulo, \0.
Siempre hay que definir las cadenas con un espacio más del previsto
como máxima longitud para el carácter fin de cadena.
2.2.3. Entradas y Salidas
Salida
La salida de datos de un programa se puede dirigir a diversos dispositivos:
pantalla, impresora, archivos. La salida que se trata a continuación va a
ser a pantalla y además será formateada. La función printf() visualiza en la
pantalla datos del programa, transforma los datos, que están en
representación binaria, a ASCII según los códigos transmitidos así, por
ejemplo:
suma = 0;
suma = suma + 10;
printf(“%s %d”, “suma = “, suma);
Visualiza
suma = 10
2.2.3. Entradas y Salidas
El número de argumentos de printf() es indefinido, por lo que se pueden
transmitir cuantos datos se dese. Suponiendo que:
La sentencia
Printf (“%d %d %c %f”, i, j, c, n);
Visualizará en pantalla
5 12 A 40.791512
I = 11 j = 12 c = ‘A’ n = 40.791512
Visualizara en pantalla:
B 12 A 40.792
Visualizara en pantalla
Hola Lucas
Hola Lucas
2.2.3. Entradas y Salidas
Sentencias y Expresiones.
En C, una sentencia controla la secuencia de ejecución o evalúa una
expresión. Todas las sentencias finalizan con un punto y coma (;). Una
sentencia muy común podría ser:
x=a+b;
x=a+b; y x= a + b;
{
Temporal=a;
a= b;
b= temporal;
}
Por ejemplo:
x= a + b;
variable = expresión
Código = 3467;
Fahrenheit = 123.456;
coordX = 525;
coordY = 725;
2.4 Operadores.
Esta propiedad permite inicializar varias variables con una sola sentencia:
int a, b, c;
a=b=c=5 /* se asigna 5 a las variables a, b, y c */
i = i * 10;
i *= 10; equivale a i = i * 10
3+5*2
3+(5*2)
Operadores tales como >= y == que comprueban una relación entre dos
operandos se llaman operadores relacionales y se utilizan en expresiones
de la forma:
c = 3 < 7;
‘b’ < ‘B’ es 0, falsa (false) ya que b (código 98) no es menor que B (código
66).
2.4 Operadores.
Las cadenas de caracteres no pueden compararse directamente, por
ejemplo:
! (not)
&& (and)
| | (or)
a) el operador
b) sus argumentos.
Con operadores lógicos existen solo dos valores posibles para expresiones:
verdadero y falso.
!(x+7 == 5)
(anum > 5) && (respuesta == ‘S’)
(bnum > 3) || (respuesta == ‘N’)
2.4 Operadores.
2.4 Operadores.
2.4 Operadores.
Los operadores lógicos se utilizan en expresiones condicionales y mediante
sentencias if, while o for. Así, por ejemplo, la sentencia if (si la condición es
verdadera/falsa…) se utiliza para evaluar operadores lógicos.
{
puts (“Los resultados no son válidos”);
}
{
prima = 100000;
}
2.4 Operadores.
Si la variable ventas es mayor 50000 o bien la variable horas es menor que
100, entonces asignar a la variable prima el valor 100000.
{
prima = 12500;
}
equivale a:
Evaluación en cortocircuito
En C los operadores a la izquierda de && y || se evalúan siempre en
primer lugar; si el valor del operador de la izquierda determina de forma
inequívoca el valor de la expresión, el operador derecho no se evalúa.
Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false.
Tipodedato nombredelarreglo[tamañodelarreglo];
Como podemos ver, es similar a declarar una variable convencional,
solo que se coloca entre corchetes el número de posiciones del arreglo,
por lo que todas las posiciones serán del mismo tipo.
x[5]=10;
Parra llenar todos los elementos del arreglo es común emplear un ciclo
que nos permita recorrer el arreglo desde la primera hasta la última
posición, tal y como podemos ver en el siguiente ejemplo:
En este ejemplo hemos declarado un arreglo de tipo entero de 10
posiciones llamado x, observe que en el ciclo que empleamos para
llenar el arreglo el contador “i” va del 0 al 9, esto es porque las
posiciones de los arreglos en C++ se comienzan a numerar a partir del
cero.
Finalmente hay un ciclo for en el que usamos printf para presentar todos
los elementos del arreglo, como se puede observar cualquier operación
sobre el arreglo completo o sobre una sección de este, deberá hacerse
a través de un ciclo for.
Arreglos bidimensionales
Son estructuras de datos que agrupan muchos datos del mismo tipo, en
donde cada elemento se puede trabajar individualmente y se puede
hacer referencia con un mismo nombre. Se usan para representar datos
que pueden verse como una tabla con filas y columnas.
Ejemplo:
#include <stdio.h>
int main()
{
int fila, columna;
int matriz[2][2];
for(fila=0; fila<2; fila++)
for(columna=0; columna<2; columna++)
printf(“%d”, matriz[fila][columna]);
return 0;
}
Es un arreglo de dos dimensiones. Son estructuras de datos que agrupan
muchos datos del mismo tipo, en donde cada elemento se puede
trabajar individualmente y se puede referenciar con un mismo
nombre. Se usan para representar datos que pueden verse como una
tabla con filas y columnas.
Olivares Flores, Linda I. (2008). Manual de Programación en Lenguaje C++. México DGSCA-
UNAM.
Ceballos, Francisco Javier. (2009). C/C++. Curso de programación. (2ª ed.). México: Alfaomega-
Ra ma.
Joyanes Aguilar, Luis (2010). Programación C/C++, Java y UML, (1ª ed.). México: Mc Graw Hill.
Mathews, John H. y Fink Kurtis D. (2008). Métodos numéricos con Matlab. (3ª ed.). Madrid:
Prentice Hall/Pearson.
Peñalosa, Ernesto. (2003). Fundamentos de programación C/C++. (4ª ed.). México: Alfa Omega-
UNAM.