Fundamentos de Programación
Lenguaje C
Identificadores
Son los nombres usados para referenciar las constantes simbólicas, variables,
funciones, etiquetas y otros objetos definidos por el usuario.
El número total de caracteres de un identificador puede ser cualquiera, pero los
compiladores normalmente no reconocen más de 31, de modo que dos
identificadores que coinciden en sus primeros 31 caracteres son iguales aunque
de allí en adelante sean diferentes. El lenguaje C hace diferencia entre las letras
mayúsculas y las minúsculas.
Sumadetodoslosnumerosparesqueencuentre
El primer caracter siempre debe ser una letra del alfabeto inglés o el carácter de
subrayado, mientras que los caracteres siguientes pueden ser letras, números o
símbolos de subrayado. Por ejemplo, son identificadores: cont, num_total y
curso1.
Un identificador puede ser más largo que el número de caracteres significativos
reconocibles por el compilador, pero los caracteres que pasan este límite serán
ignorados.
En lenguaje C las letras minúsculas y mayúsculas se tratan como distintas. Así
MANUAL y manual son identificadores distintos.
Por Ejemplo
int A;
int a; estas variables son diferentes en espacio de memoria y en identificador
Un identificador no puede ser igual a una palabra reservada del lenguaje C,
tampoco debe tener el mismo nombre que alguna función ya escrita o que se
encuentre en la biblioteca del lenguaje C.
Fundamentos de Programación | Ing. Patricio Vinueza
Lenguaje C solo tiene 32 "palabras clave", que constituyen las órdenes que lo
conforman. Estas palabras junto con la sintaxis, forman el lenguaje C. A
continuación se lista las 32 "palabras reservadas":
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
float entero; no puedo utilizar como nombre una palabra reservada
int Auto;
int Union;
int aUto;
int auTo;
int autO;
Algunos compiladores incluyen también las siguientes palabras reservadas:
cdecl fortran near
far huge pascal
Los siguientes son ejemplos de identificadores que pueden utilizarse para
nombrar tipos, variable, funciones y etiquetas son:
h34
valor_calculado
uvw_1234
otro_caso
En cambio no son aceptables los siguientes, por la razón anotada al frente :
3veces comienza con dígito
viento.punto contiene el carácter punto (.)
salario mensual contiene el carácter espacio ( )
valor-supuesto contiene el carácter guión (-)
union es una palabra reservada
_union si vale
Fundamentos de Programación | Ing. Patricio Vinueza
En pseudocódigo
Hay 4 tipos de datos
Entero
Real
Carácter
Cadena de Caracteres
En lenguaje C
1. Datos Fundamentales
a. Enteros (carácter)
b. Real
c. void (nada)
2. Datos Derivados
a. Punteros
b. Cadena de Caracteres (arreglos unidimensional)
c. Estructuras
d. Uniones
e. Matrices (arreglos bidimensionales)
f. Cubos (arreglo tridimensionales)
unsigned (sin signo) entero sin signo
signed (con signo) entero con signo
short (corto) Entero entero corto 2byte
long (largo) entero largo 4byte
entero sin signo se lo declara unsigned int suma;
entero con signo se lo declara signed int suma;
int suma;
entero corto se lo declaro short int suma;
short suma;
entero largo se lo declaro long int suma;
long suma;
Fundamentos de Programación | Ing. Patricio Vinueza
Tipos de datos en C y declaraciones
Toda la información que la computadora almacena y manipula necesariamente
debe formar parte de algún dato que se encuentra en memoria y que puede ser
recibido por medio de algún dispositivo de entrada o que puede ser emitido por
la máquina a través de algún dispositivo de salida. Con el objeto de realizar un
manejo racional de los datos, éstos se clasifican en tipos según el papel que
desempeñan y según la cantidad de memoria (medida en bytes) que ocupan.
Para que cualquier variable pueda ser utilizada dentro de un programa en C es
necesario, como ya se ha señalado, que sea declarada en el lugar adecuado al
comienzo de la función donde se la requiera, es decir, que se indique cuál es su
nombre y a qué tipo pertenece.
Los tipos que utiliza el lenguaje C son de dos clases: Los tipos FUNDAMENTALES
y los tipos DERIVADOS, tal como se enumeran enseguida indicando el número
de bytes que cada uno ocupa, el rango de valores que puede tomar y una breve
descripción de su naturaleza y utilización:
Tipos fundamentales
Hay varios tipos fundamentales de datos. Los ficheros de cabecera limits.h y
float.h especifican los valores máximo y mínimo para cada tipo. Los podemos
clasificar en:
Tipos enteros: char, short, int, long y enum
Tipos reales: float, double y long double
Otros: void
Su Rango depende del sistema operativo, la lista siguiente muestra para un
sistema operativo Windows de 32 bit
Byte Rango Descripción
Tipos enteros
char 1 -127 a 128 Número entero con signo o código ASCII
de un carácter
(si está entre 0 y 128). Equivale a
signed char.
unsigned char 1 0 a 255 Número entero sin signo o código
ASCCII de un carácter (0-255).
int 2 -32768 a 32767 Número entero con signo. Equivale a
signed int.
Fundamentos de Programación | Ing. Patricio Vinueza
short 2 -32768 a 36767 Número entero con signo. Equivale a
signed short int
unsigned short 2 0 a 65535 Número entero sin signo.
long 4 -2 147 483 648 a Número entero largo con signo. Equivale
2 147 483 647 a signed long.
unsigned long 4 0 a 4 294 967 295 Número entero largo sin signo.
enum Varia- tipo enumerado, es decir, una lista de
ble números enteros distinguidos por
identificadores (ver ejemplo enseguida).
Tipos reales
float 4 ±(1.8e-38 a 3.4e+38) Número real de simple precisión con
6 dígitos de precisión siete dígitos significativos, positivo o
negativo. (E+45 significa 10 elevado a la
potencia 45)
double 8 ±(2.2e-308 a Número real de doble precisión con 16
1.8e+308) dígitos significativos, positivo o
15 dígitos de precisión negativo.
long double 10 ±(3.4e-4932 a Equivalente a double en muchos
1.2e+4932) compiladores
18 dígitos de precisión
Otros
void Sin valor
1 2 3 4 5 6 7
enum dia={lunes,martes,miercoles,jueves,viernes,sabado,domingo};
dia=6;
dia = sabado;
dia = martes+lunes
unsigned int total; // soporta valores desde el 0 hasta 65535
total = 1;
total = 100; total
total = 20000;
total = 65535; 65534
total = 65536;
total = 65537;
total = 65538;
total = 0;
total = -1;
total = -2;
Fundamentos de Programación | Ing. Patricio Vinueza
dibujar el ángulo 405 = 45 grados
0 65535
long Factorial;
Factorial 1 = 1
Factorial 5 = 5*4*3*2*1 = 120
Factorial 8 = 40320
Factorial 10 = 3’628.800
Fundamentos de Programación | Ing. Patricio Vinueza
Tipos derivados
Los tipos derivados son construidos a partir de los tipos fundamentales. Algunos
de ellos son: punteros, estructuras, uniones, arrays y funciones. Cada uno de
estos tipos será estudiado con detalle en los siguientes parciales.
Cadenas de caracteres
“Patricio” arreglo de 30 caracteres
char nom[30];
0 1 2 3 4 5 6 7
P a t r i c i o
Cadenas de enteros
int num[10];
0 1 2 3 4 5 6 7 8 9
478 100 65535 -18 425 20564 3 68 45 7
num[7]=68;
num[0]=478;
num[10]=-2;
Fundamentos de Programación | Ing. Patricio Vinueza
Cadena de reales
float num2[50];
14 por el 5
11 por el 4
3 por el 2
Fundamentos de Programación | Ing. Patricio Vinueza
Tarea 7
7.1 Problemas Propuestos - Estructuras Secuenciales
Elabore el algoritmo en pseudocódigo de cada uno de los siguientes problemas
y codifiquelos en DEV C++, Enviar el archivo de word y los archivos fuentes de
los programas empaquetados.
Problema 1
Enunciado: Hallar la radicación de √𝑎 , donde a y n pertenecen a Z+
𝑛
(números enteros positivos)
Análisis: Para la solución de este problema, se requiere que el usuario ingrese
dos números enteros positivos a y n, luego el sistema procesa y obtiene la
radicación r
Expresión Matemática
1
r = de √𝑎 = 𝑎𝑛
𝑛
Expresión Algorítmica
r = a ^(1/n)
Entrada:
Dos números enteros: a, n.
Salida:
La radicacion es
Diseño:
Interfaz de Usuario
Ingrese a: 9765625
Ingrese n: 10
La Radicacion es: 5
Fundamentos de Programación | Ing. Patricio Vinueza
Algoritmo: Diagrama de flujo
Pseudocódigo:
Codificación:
Fundamentos de Programación | Ing. Patricio Vinueza
Problema 2
Enunciado: Dado un número de 5 dígitos, devolver el número en orden inverso.
Análisis: Para la solución de este problema, se requiere que el usuario ingrese
un número n, luego el sistema procesa y obtiene el número inverso, realizando
4 divisiones sucesivas entre 10 para acumular el residuo y el último cociente
Entrada:
Un número entero: n.
Salida:
El número invertido: ni
Diseño:
Interfaz de Usuario
Ingrese un número entero de 5 cifras: 12345
Invertido : 54321
Fundamentos de Programación | Ing. Patricio Vinueza
Algoritmo:
Diagrama de flujo:
Pseudocódigo:
Codificación:
Fundamentos de Programación | Ing. Patricio Vinueza
Problema 3
Enunciado: Determinar la suma de los N primeros números enteros positivos
(Z+) use la siguiente fórmula.
𝑁(𝑁 + 1)
𝑆=
2
Análisis: Para la solución de este problema, se requiere que el usuario ingrese
un número entero positivo n, luego el sistema procesa y obtiene la suma de los
primeros números enteros positivos hasta n
Expresión Matemática
𝑁(𝑁 + 1)
𝑆=
2
Expresión Algorítmica
S = (n*(n+1))/2
Entrada:
Número entero n
Salida:
La suma S
Diseño:
Interfaz de Usuario
Ingresa un entero: 5
La suma de los primeros números hasta 5 es: 15
El IVA es: 12
Algoritmo Diagrama de flujo:
Precio de Venta final: 112
Fundamentos de Programación | Ing. Patricio Vinueza
Pseudocódigo:
Codificación:
Problema 4
Escribir un programa que defina dos variables: una de tipo entero llamada pies
y otra de tipo real llamada metros, lea desde el teclado el número de pies y
conviértalos a metros la salida en la pantalla podría ser (1 pie = 0.3048 metro):
Introducir el número de pies: 10
10 pies es 3.048 metros
Análisis: Para la solución de este problema, se requiere que el usuario ingrese
un número entero positivos pies, luego el sistema procese y obtenga su
equivalente en metros
Expresión Matemática
Metros = pies * 0.3048
Expresión Algorítmica
Metros = pies * 0.3048
Entrada:
Un número entero: pies
Salida:
Cantidad en metros: metros
Diseño:
Interfaz de Usuario
Ingrese la medida en pies: 100
El valor ingresado equivale a 30.48 metros
Radicacion: 5
Fundamentos de Programación | Ing. Patricio Vinueza
Algoritmo: Diagrama de flujo
Pseudocódigo:
Codificación:
Problema 5
Enunciado: Calcular el interés compuesto generado por un capital depositado
durante cierta cantidad de tiempo a una tasa de interés determinada, aplique
las siguientes fórmulas.
𝑀 = 𝐶(1 + 𝑟%)𝑡
Fundamentos de Programación | Ing. Patricio Vinueza
I=M-C
Monto (M): Es la suma del capital más sus intereses producido en
determinado tiempo.
Tasa de interés (r%): Es la ganancia que se obtiene por cada 100
unidades monetarias en cada periodo de tiempo.
Capital (C): Es todo aquello que se va a ceder o imponer durante algún
tiempo para generar una ganancia.
Interés (I): Parte de la utilidad que obtiene el capitalista por prestar su
dinero.
Tiempo (t): Es el periodo de tiempo durante el cual se cede el capital.
Análisis: Para la solución de este problema, se requiere que el usuario ingrese
el capital c, la tasa de interés r y el tiempo , luego el sistema procesa y obtiene
el interés ganado y el monto producido
Expresión Matemática: Expresión Algorítmica:
𝑀 = 𝐶(1 + 𝑟%) 𝑡
m = c*(1 + r / 100)^t
i=m-c
Entrada: Salida:
• Capital (c) • Interés (i).
• Tasa de interés (r) • Monto (m).
• Tiempo (t)
Diseño:
Interfaz de Usuario
Ingrese el capital: 100
Tasa de interés en %: 10
Tiempo en años: 2
Intereses es: 21
Monto ganado es: 121
Algoritmo: Diagrama de flujo
Fundamentos de Programación | Ing. Patricio Vinueza
Pseudocódigo:
Programa que calcula el interes compuesto
Inicio
Real: c,t,r,i,m
Escribir “Ingrese el capital: “
Leer c
Escribir “Tasa de interés en %: “
Leer r
Escribir “Tiempo en años: “
Leer t
m = c*(1+r/100)^t
i = m-c
Escribir “Intereses es:”,i
Escribir “Monto ganado es: “,m
Fin
Codificación:
//Programa que calcula el interes compuesto
#include <stdio.h>
#include <math.h>
int main()
{
float c,t,r,i,m;
printf("Ingrese el capital: ");
scanf("%f",&c);
printf("Tasa de inter%cs en %%: ",130);
Fundamentos de Programación | Ing. Patricio Vinueza
scanf("%f",&r);
printf("Tiempo en a%cos: ",164);
scanf("%f",&t);
m = c*pow((1+r/100),t);
i = m-c;
printf("\n\nEl Inter%cs es: %.2f\n",130,i);
printf("Monto ganado es: %.2f ",m);
}//fin programa
Para sacar la raiz cuadrada
Sqrt(x)
Pow(x,1/2.0)
Fundamentos de Programación | Ing. Patricio Vinueza
Problema 6
Enunciado: Crear un programa para encontrar el Área de un Círculo, use la
fórmula: 𝐴 = 𝜋. 𝑟 2
Área (A): Es el área del círculo.
PI (𝜋): Representa el valor constante pi (3.14159)
Radio (r): Es el radio del círculo
Análisis: Para la solución de este problema, se requiere que el usuario ingrese
el radio del círculo y el sistema procesa y obtiene el área del círculo.
Expresión Matemática: Expresión Algorítmica:
𝐴 = 𝜋. 𝑟 2
A = PI*r^2
Entrada: Salida:
• Radio (r) • Área (a).
Diseño:
Interfaz de Usuario
Ingrese el radio: 5
Area: : 78.53975
Algoritmo:
Diagrama de flijo:
Pseudocódigo:
Fundamentos de Programación | Ing. Patricio Vinueza
Codificación:
Problema 7
Enunciado: rear un programa que permita convertir una cantidad de segundos
en horas, minutos y segundos
Análisis: Para la solución de este problema, se requiere que el usuario ingrese
un tiempo expresado en segundos y el sistema procesa y obtiene las horas,
minutos y segundos restantes.
Entrada: Salida:
• Tiempo en segundos (t) Horas (h)
Minutos (m)
Segundos (s)
Diseño:
Interfaz de Usuario
Ingresa tiempo en segundos: 99999
Horas: 277
Minutos: 46
Segundos: 39
Fundamentos de Programación | Ing. Patricio Vinueza
Algoritmo Diagrama de flujo:
Pseudocódigo:
Codificación:
Fundamentos de Programación | Ing. Patricio Vinueza
Problema 8
Enunciado: Crear un programa que proporcione el volumen de un cilindro dados
su altura y diámetro: 𝑉 = 𝜋. 𝑟 2 . ℎ
Volumen (V): Es el volumen del cilindro.
PI (𝜋): Representa el valor constante pi (3.14159)
Radio (r): Es el radio del cilindro
Altura (h): Es la altura del cilindro
Análisis: Para la solución de este problema, se requiere que el usuario ingrese
el diámetro y la altura del cilindro y el sistema procesa y obtiene el área del
cilindro.
Expresión Matemática: Expresión Algorítmica:
2
𝑉 = 𝜋. 𝑟 . ℎ V = PI*r^2*h
𝑑 r = d/2
𝑟=
2
Entrada: Salida:
• Diámetro (d) • Volumen (V).
• Altura (h)
Diseño:
Interfaz de Usuario
Programa que calcula el volumen de un cilindro
Introduzca el diámetro, en metros: 5
Introduzca la altura, en metros:12
El Volumen del Cilindro es: 235.619476 metros cúbicos
Diseño del Algoritmo:
Diagrama de flujo:
Fundamentos de Programación | Ing. Patricio Vinueza
Pseudocódigo:
Programa que calcula el volumen del cilindro
Inicio
Real: r,h,V,d
Constante real: PI=3.141593
Escribir “Programa que calcula el volumen de un cilindro “
Escribir “Introduzca el diámetro, en metros:”
Leer d
Escribir “Introduzca la altura, en metros:”
Leer h
r = d/2
V = PI*r^2*h
Escribir “El Volumen del Cilindro es: “,V,” metros cúbicos”
Fin
\n sentencia de control debe ir dentro de las comillas y produce un
salto de linea
Fundamentos de Programación | Ing. Patricio Vinueza
Codificación:
//Programa que calcula el volumen del cilindro
#include <stdio.h>
int main()
{
float r,h,V,d;
const float PI=3.141593;
printf("Programa que calcula el volumen de un cilindro\n\n");
printf("Introduzca el di%cmetro, en metros:",160);
scanf("%f",&d);
printf("Introduzca la altura, en metros:");
scanf("%f",&h);
r = d/2;
V = PI*r*r*h;
printf("\nEl Volumen del Cilindro es: %f metros c%cbicos",V,163);
}
Fundamentos de Programación | Ing. Patricio Vinueza