Fundamentos de
Programación
Curso Propedéutico
Maestría en Ingeniería Electrónica
Breve historia de C
C es un lenguaje de programación creado en 1969 por Ken Thompson y Dennis
M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su
vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementación de Sistemas
Operativos, concretamente Unix.
C es apreciado por la eficiencia del código que produce y es el lenguaje de
programación más popular para crear software de sistemas, aunque también se
utiliza para crear aplicaciones.
Se trata de un lenguaje débilmente tipado de medio nivel pero con muchas
características de bajo nivel.
Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez,
dispone de construcciones del lenguaje que permiten un control a muy bajo nivel.
Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar
código en ensamblador con código C o acceder directamente a memoria o
dispositivos periféricos.
Entorno de C++
Editor
Preprocesador
Compilador
Editor de enlaces
Disco
Disco
Crea el programa
archivo .c o .cpp
Procesa directivas
Disco
Genera código objeto
archivo .obj
Disco
Crea archivo ejecutable
archivo a.out o .exe
Entorno de C++ (cont.)
Memoria principal
Cargador
Pone el programa
ejecutable en memoria
Disco
Memoria principal
CPU
La CPU ejecuta las
instrucciones en la
memoria
Compilación con Turbo C++
El compilador de Turbo C++ es el ejecutable tcc.exe
Los programas pueden editarse en cualquier editor de texto simple como
Edit, Notepad, o en el ambiente de Turbo C++ (tc.exe).
Puede usarse también el ambiente JGrasp debidamente configurado.
Para compilar desde cualquier ruta, asegúrese que la ruta a los ejecutables
de Turbo C++ se encuentre en la variable PATH del sistema.
Ejemplo:
c:>edit uno.cpp
Crea uno.cpp
c:>tcc uno.cpp
Crea uno.obj y uno.exe, si no hay errores
c:>uno
Carga y ejecuta uno.exe
Bienvenido a C++!
c:>
Compilación en Unix
Existen muchos compiladores de C.
El cc es el compilador estándar de Sun.
El compilador GNU de C es gcc, el cual es bastante popular y esta
disponible en varias plataformas.
Existen también compiladores equivalentes de C++ los cuales usualmente
son nombrados como CC.
Sun provee CC y GNU GCC. El compilador de GNU es también denotado
como g++.
El comando básico de compilación es:
gcc programa.c
O
gcc -o programa programa.c
donde programa.c es el nombre del archivo
Primer programa en C
Necesaria para entrada y salida
Los comentarios empiezan con //
#include <iostream.h>
// la función main comienza la ejecución
// del programa
Sentencia de salida
int main()
{
cout << "¡Bienvenido a C++!\n";
return 0;
// indica que el programa
// terminó satisfactoriamente
} // fin de la función main
Debe regresar algún valor
Características de los programas
en C
Todo programa en C tiene el siguiente formato
[Archivos de inclusión]
[Declaraciones globales]
int main(){
sentencias;
return 0;
}
Debe haber una función main.
El código ejecutable va en esta
función.
Secuencias de escape
Sirven para modificar la salida de datos
Se utilizan con cout para formatear la salida
\n
Salto de línea, también endl
\t
tabulación horizontal
\r
retorno de línea
\\
diagonal invertida
\”
imprime comillas
\OOO
visualiza un carácter cuyo código ASCII es OOO en
octal.
\xHHH
visualiza un carácter cuyo código ASCII es HHH en
hexadecimal.
Ejemplos de secuencias de escape
#include <iostream.h>
int main()
{
cout << "¡Bienvenido a ";
cout << “C++!\n";
return 0;
}
Una línea mediante dos
sentencias
Varias línea mediante
una sentencia
#include <iostream.h>
int main()
{
cout << "¡Bienvenido\na\nC++!\n";
return 0;
}
Pregunta rápida
¿Que salida genera el siguiente programa?
#include <iostream.h>
int main()
{
cout << “Introducción a\nlas computadoras";
cout << “ y a la\n programación";
cout << “ en\n C++\n";
return 0;
}
Variables
Las variables permiten almacenar valores de diferentes tipos.
Sus características son
nombre – un identificador válido
tipo – int, float, double, char, etc.
valor – el valor almacenado
En C es necesario definir todas las variables que se utilicen
Las variables se declaran con la siguiente sintaxis:
tipo var1, var2, … ;
Ejemplos:
Declara a, b y c como enteras
int a, b, c;
float r, s;
Declara r y s como reales
Tipos de datos numéricos
La siguiente tabla resume los tipos de datos numéricos en Turbo C++
Tipo
Longitud
unsigned char 8 bits
char
8 bits
enum
16 bits
unsigned int 16 bits
short int
16 bits
int
16 bits
unsigned long 32 bits
long
32 bits
float
32 bits
double
64 bits
long double 80 bits
Rango
0
-128
-32,768
0
-32,768
-32,768
0
-2,147,483,648
3.4*(10^-38)
1.7*(10^-308)
3.4*(10^-4932)
a
a
a
a
a
a
a
a
a
a
a
255
127
32,767
65,535
32,767
32,767
4,294,967,295
2,147,483,647
3.4*(10^+38)
1.7*(10^+308)
1.1*(10^+4932)
Constantes numéricas
Las constantes numéricas enteras pueden escribirse en decimal,
hexadecimal u octal.
Decimal – secuencias de dígitos decimales con o sin signo (+, -).
Hexadecimal – secuencias de dígitos hexadecimales (0..9, a..f, o A..F) que
inicia con 0x.
Ejemplo: 0x00ff o 0x00FF = 255
Octal – secuencias de dígitos octales (0..7) que inicia con 0.
Ejemplo: 0456 = 302
Las constantes reales se especifican como secuencias de dígitos decimales
y el punto decimal.
Los números en notación científica se expresan indicando el multiplicador
de 10 mediante E+nn o e+nn.
Ejemplo: 12.4 x 104 = 12.4E+4 o 12.4E4
Operación de asignación
La operación básica para el uso de variables es la asignación
El tipo de constante a asignar debe de ser congruente con el tipo con el que
fue declarada la variable.
Para la asignación se utiliza el símbolo =
Ejemplos:
a = 5;
b = 8;
cout << a << b;
Imprime
58
Ejemplo
//Ejemplo de secuencias de escape
#include <iostream.h>
int main()
{
int a,b,c,d; //4 variables reales
a = 45;
b = 23;
c = 368;
d = 345;
cout << "Impresión de \"variables\"\n";
cout << "a\tb\tc\td\n";
cout << a << "\t" << b << "\t" << c << "\t" << d << endl;
return 0;
}
Salida
Impresión de "variables"
a
b
c
d
45
23
368
345
Ejemplo de asignaciones
//Ejemplo de asignaciones
#include <iostream.h>
int main()
{
int a,b,c; // 3 variables enteras
float x,y,z; //3 variables reales
a = 5;
b = -2;
c = 8;
x = a;
a = b;
y = x;
z = 8.5;
x = z;
cout << "a=" << a << "\nb=" << b << "\nc="<< c << "\n";
cout << "x=" << x << "\ny=" << y << "\nz="<< z << "\n";
return 0;
}
Que valores se imprimen?
Tarea #1
Escriba un programa en C que despliegue los siguientes letreros
Curso propedéutico
Maestría en Ingeniería Electrónica
Facultad de Ciencias
Escriba un programa que genere la siguiente salida utilizando una sola línea con cout.
*
**
***
****
*****
Escriba un programa que imprima la siguiente tabla. Utilice tabuladores.
Color
Rojo
Verde
Blanco
Gris
R
255
0
255
128
G
0
255
255
128
B
0
0
255
128
Escriba un programa que declare las variables a y b como enteras y las variables c y d
como reales. Asigne valores aceptables a cada variable. ¿Es posible asignar una
variable entera a una real? ¿Es posible asignar una variable real a una entera? Escriba
código para probar lo anterior y asigne diferentes valores. ¿Por que se dice que C es
débilmente tipado?
Algunos operadores en C
Operadores aritméticos
Operación
Operador Ejemplo
Suma
+
5 + 8
Resta
-
5 – 2
Multiplicación
*
4 * 8
División
/
2 / 7
Módulo
%
5 % 3
Reglas de precedencia
El operador () se utiliza para modificar la precedencia de los operadores
Operador
Operación
Precedencia
( )
Paréntesis
Precedencia más
alta. Se evalúan
primero los más
anidados
*, / o %
+ o -
Multiplicación, división, módulo Se evalúan de
izquierda a derecha
Suma o resta
Se evalúan de
izquierda a derecha
Ejemplos de operadores
Notación estándar
ab
d
Notación en C
a + b – d/c
c
a mod c  d
ab
2c  3
a % c + d
(a + b)/(2*c + 3)
ac
(a - c)/(4*b*c) o
4 bc
(a - c)/4/b/c
Entrada de datos
Para la lectura de datos desde el teclado puede utilizarse la función cin.
El formato para cin es:
cin >> var;
Al ejecutarse la función cin se detiene la ejecución del programa hasta que
se teclee el valor de la variable solicitada.
Pueden leerse varias variables en una sola línea.
cin >> var1 >> var2 >> var3;
Las variables se leen separadas por espacios o la tecla enter.
Suma de enteros
Declaración de enteros
// Programa de suma.
#include <iostream.h>
// la función main comienza la ejecución del programa
int main()
{
int entero1; // primer número que introduce el usuario
int entero2; // segundo número que introduce el usuario
int suma;
// variable en la que se almacena la suma
cout << "Digite el primer entero\n"; // indicador
cin >> entero1;
// lee un entero
cout << "Digite el segundo entero\n"; // indicador
cin >> entero2;
// lee un entero
suma = entero1 + entero2; // asignación del resultado a suma
cout << "La suma es " << suma << endl; // impresión de suma
return 0;
// indica que el programa terminó satisfactoriamente
} // fin de la función main
Operación de suma
Concatenación de flujo
Sentencia de entrada
Asigna valor a variable
desde el teclado
Memoria del programa de suma
integer1
38
integer2
54
suma
92
Variables
(direcciones
de memoria)
Contenido
Ejemplo
Se desea un programa para calcular el área de un triángulo dadas las
coordenadas de sus vértices.
El área se calcula utilizando la siguiente fórmula:
area 
1
2
 x1 y 2  x 2 y 3  x 3 y 1  x1 y 3  x 2 y 1  x 3 y 2 
Variables de entrada:
x1, x2, x3, y1, y2, y3
Variables de salida:
area
Solución
//Programa para calcular el área de un triángulo
#include <iostream.h>
#include <math.h>
int main()
{
float x1,x2,x3,y1,y2,y3; // coordenadas del triángulo
float area;
// área del triángulo
cout << "Teclee las coordenadas del primer punto: ";
cin >> x1 >> y1;
cout << "Teclee las coordenadas del segundo punto: ";
cin >> x2 >> y2;
cout << "Teclee las coordenadas del tercer punto: ";
cin >> x3 >> y3;
area = (x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)/2.0;
cout << "área: " << area << endl;
return 0;
}
Funciones matemáticas
La biblioteca math.h contiene la definición de muchas funciones
matemáticas útiles. El siguiente es un listado breve de algunas funciones.
ceil(x)- redondea al entero más
pequeño no menor que x.
cos(x)-
coseno de x.
exp(x)-
ex.
fabs(x)- valor absoluto de x.
floor(x)- redondea al entero más
grande no mayor que x.
log(x)- logaritmo natural de x.
log10(x)- logaritmo base 10 de x.
pow(x,y)- xy.
sin(x)-
seno de x.
sqrt(x)- raíz cuadrada de x.
tan(x)- tangente de x.
Ejemplo
Cálculo del área de un triángulo conocidas las longitudes de los lados
//Programa para calcular el área de un triángulo
#include <iostream.h>
#include <math.h>
int main()
{
float a,b,c; // lados del triángulo
float s;
//semiperímetro
float area;
// área del triángulo
cout << "Teclee la longitud de los lados: ";
cin >> a >> b >> c;
// lee los lados
s = (a + b + c)/2.0;
area = sqrt(s*(s-a)*(s-b)*(s-c));
cout << "área: " << area << endl;
return 0;
}
Tarea #2
Escriba un programa que lea el radio de un círculo e imprima su
perímetro y área. Defina el valor de pi como 3.141592.
Escriba un programa para calcular la magnitud de la fuerza entre dos
cargas eléctricas dadas las coordenadas de las cargas y la magnitud
de cada carga. La fuerza se calcula con la expresión
F k
k = 8.99x109.
q1 q 2
 x 2  x1  2   y 2 
y1 
2
Descargar

Introducción - Facultad de Ciencias