Post on 15-Oct-2015
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 1
Objetivo: En base a un algoritmo el alumno har su traduccin a lenguaje C, participando en todo
momento en los pasos necesarios de la creacin de un programa ejecutable en lenguaje C. El
alumno tendr contacto directo con el compilador de lenguaje C en la computadora, conociendo las
posibilidades de edicin que se tiene en la escritura de un programa.
Duracin de la Prctica: 2 Horas.
Lugar de realizacin: Laboratorio de cmputo.
El conocimiento requerido para realizar esta Prctica es de haber asimilado: Tipos de datos,
variables y constantes, operadores y expresiones, y estructuras de seleccin if else.
TRANSFORMACIN DEL LENGUAJE ALGORITMICO (PSEUDOCODIGO) AL LENGUAJE C/C++
LENGUAJE ALGORITMICO LENGUAJE C/C++
ESTRUCTURA DEL PROGRAMA
ALGORITMO Nombre_de_algoritmo
Definicin de variables
Definicin de constantes
Declaracin de funciones
INICIO
Instrucciones ejecutables
FIN
declaracin de importaciones:
#include ,
definicin de constantes:
#define nombre_equiv cadena
definicin de tipos
declaracin de prototipos de funciones
void main (void)
{
declaracin de variables;
instrucciones ejecutables;
}
definicin de funciones
TIPOS DE DATOS
carcter
entero
real
lgico
cadena
char
int / long
float / double
tipo definido: typedef enum {Falso, Cierto} Logico;
tipo definido: typedef char Cadena[MAXCAR];
TIPOS DE DATOS:
VARIABLES, CONSTANTES
ASIGNACIONES,
EXPRESIONES
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 2
DEFINICIN DE CONSTANTES
constante o const
Nombre_ constante = valor
PI = 3.14159
#define identificador_constante valor
#define PI 3.14159
DECLARACIN DE VARIABLES
variable o var
tipo: nombre_variable1, nombre_variable2,
...., nombre_variableN
var
entero: i, j, k
real: raiz1, raiz2
, [,
, ....];
int 1, j, k;
float raiz1, raiz2;
ASIGNACIN
Nombre_variable expresin
areat (base*altura)/2
Nombre_variable = expresin;
areat (base*altura)/2;
ENTRADA
leer (nombre_variable1, nombre variable2, ...)
carcter: ch
entero: i
real: x
leer (ch)
leer ch, i, x
getchar (carcter),
gets (cadena),
scanf (%x1, %x2,..., &arg1, &arg2,...); (con
formato)
cin >> nombre_variable; (propio del C++)
char ch;
int i;
double x;
ch = getchar();
scanf ("%c%d%lf", &ch, &i, &x);
SALIDA
escribir (cadena de caracteres, variable1,
variable2, ...)
carcter : ch
entero : i
real : x
escribir (ch)
escribir (ch, i, x)
putchar (carcter),
puts (cadena),
printf (%x1, %x2,..., arg1, arg2,...); (con formato)
cout
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 3
si (i 0) entonces
x sen(i)/i
fsi
if (i != 0)
x = sin(i)/i;
ESTRUCTURA SELECTIVA DOBLE
Si (condicin) entonces
sentencias
sino
sentencias
fsi
Si (n mod 2 = 0) entonces
Escribir ("nmero par")
Sino
Escribir ("nmero impar")
fsi
if (condicin)
instruccin;
else
instruccin;
if (n%2 == 0)
cout
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 4
Traduzcamos el algoritmo que definimos para el problema inicial y veamos como queda en el
lenguaje:
1. /****************************************************** 2. Universidad Nacional Mayor de San Marcos 3. Escuela Acadmica de Ingeniera de Sistemas - FISI 4. Laboratorio de Algoritmica I 5. ******************************************************* 6. Nombre de archivo : c:\Porccand.cpp 7. Fecha de Creacin : 16/09/2004 8. Hora de Creacin : 02:00:00 p.m. 9. Descripcin : "Calculo Porcentajes de Candidatos" 10. Autor : Ing. John Ledgard Trujillo Trejo 11. Copyright : Unmsm FISI 2012 12. */
13. #include 14. #include
15. main() 16. { 17. float votos1, votos2, votost; 18. float porc1, porc2;
19. clrscr(); 20. cout
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 5
Las primeras lneas 1 al 12, es lo que se conoce como un comentario. Los comentarios se pueden
situar en cualquier parte de nuestro cdigo y se considerar como comentario cualquier
mensaje que se encuentre entre los caracteres /* y */.
13. #include 14. #include
Las lneas 13 y 14 es lo que se conoce como directiva del preprocesador, todos los
compiladores de C/C++ disponen de un preprocesador, un programa que examina el cdigo antes
de compilarlo. En el se incluyen los archivos de cabecera de las libreras del C/C++ que contienen
las funciones utilizadas en el programa.
La librera iostream.h contiene las funciones de entrada (cin) y de salida (cout).
La librera conio.h contiene la funcion getch.
15. main()
En la siguiente lnea nos encontramos con main(). Esto indica que aqu comienza nuestro
programa. La funcin main (principal en ingls) siempre debe existir y contendr el programa
principal.
float votos1, votos2, votost;
float porc1, porc2;
Declara votos1, votos2, votost, porc1, porc2 como variables reales.
float indica que el tipo de nmero que puede almacenar la variable es un nmero real.
clrscr(); una sentencia de borrar pantalla.
coutvotos1;
Lee un nmero real desde el teclado y lo asigna (guarda) a (en) la variable votos1.
cin es una funcin que:
Espera que el usuario ingrese un nmero (tecleando dgitos y ENTER).
Lee (obtiene, reconoce) el valor numrico.
Entrega el valor numrico como resultado.
votost = votos1 + votos2;
asigna a la variable real votost la suma de los valores de las variables votos1 y votos2.
cout
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 6
EJERCICIOS
Problema No. 1. Escribir un algoritmo y un programa en C que lea dos valores enteros y muestre
su suma, resta, multiplicacin, divisin entera y resto de la divisin.
DATOS DE ENTRADA: a y b nmeros enteros.
Algoritmo Operaciones_Aritmticas
var
entero: a, b
inicio
escribir ("Introduce el primer nmero: ")
leer (a)
escribir ("Introduce el segundo nmero: ")
leer (b)
escribir ("La suma es: ", a + b)
escribir ("La resta es: , a - b)
escribir ("La multiplicacin es: ", a * b)
escribir ("La divisin entera es: ", a / b)
escribir ("El resto de la divisin entera es:", a % b)
fin
Lenguaje C++
/******************************************************
Universidad Nacional Mayor de San Marcos
Escuela Acadmica de Ingeniera de Sistemas
Laboratorio de Algoritmica I
*******************************************************
Nombre de archivo : c:\operente.cpp
Descripcin : "Operaciones aritmticas con dos enteros."
Autor : Ing. John Ledgard Trujillo Trejo
Copyright : Unmsm - FISI - 2012
*/
#include
#include
void main (){
int entero1, entero2;
clrscr();
coutentero1;
coutentero2;
cout
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 7
cout
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 8
main()
{
//Declaracion de variables
float base, altura, radio;
float areat, areac;
//Ingreso de datos
clrscr();
coutbase;
coutaltura;
areat = (base * altura)/2;
cout
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 9
Lenguaje C++
/******************************************************
Universidad Nacional Mayor de San Marcos
Escuela Acadmica de Ingeniera de Sistemas
Laboratorio de Algoritmica I
*******************************************************
Nombre de archivo : c:\cuatroop.cpp
Descripcin : "Cuatro operaciones"
Autor : Ing. John Ledgard Trujillo Trejo
Copyright : Unmsm - FISI - 2012
*/
#include
#include
main()
{
//Declaracin de variables
float num1,num2,resul;
char oper;
//Ingreso de datos
clrscr();
coutnum1;
cout
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 10
inicio
escribir ("Ingrese el valor del primer lado: ")
leer (lado1)
escribir ("Ingrese el valor del segundo lado: ")
leer (lado2)
escribir ("Ingrese el valor del tercer lado: ")
leer (lado3)
si ((lado1=lado2) y (lado2=lado3) y (lado1=lado3)) entonces
escribir ("El triangulo es equilatero")
sino
si ((lado1lado2) y (lado2=lado3) y (lado1lado3)) entonces
escribir ("El triangulo es escaleno")
sino
leer ("El triangulo es isoceles")
fin_si
fin_si
fin
Lenguaje C++
/******************************************************
Universidad Nacional Mayor de San Marcos
Escuela Acadmica de Ingeniera de Sistemas
Laboratorio de Algoritmica I
*******************************************************
Nombre de archivo : c:\triang.cpp
Descripcin : " Determinacion si un triangulo es escaleno, isosceles o equilatero"
Autor : Ing. John Ledgard Trujillo Trejo
Copyright : Unmsm - FISI - 2012
*/
#include
#include
main()
{
//Declaracion de variables
float lado1,lado2,lado3;
//Ingreso de datos
clrscr();
coutlado1;
coutlado2;
coutlado3;
//Proceso de datos y mostrara resultados
if((lado1=lado2) && (lado2==lado3) && (lado1==lado3))
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 11
cout
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 12
El cdigo que suele emplearse en las resistencias es un cdigo de 4 colores, es decir, cada
resistencia est marcada con 4 bandas y cada una de ellas puede ser de diferente color. Cada
banda tiene un significado, que depende de cada color:
Las primeras 2 bandas indican un nmero de 2 dgitos: Esos dos dgitos vienen dados por el
color de esas bandas, segn la columna "Dgito" de la tabla.
La tercera banda es un valor por el que se multiplicar el nmero obtenido por las bandas
anteriores. Una vez multiplicados ambos valores, obtenemos el valor de la resistencia en
Ohmios (W).
La cuarta banda indica la tolerancia de la resistencia y, como puede verse en la tabla, no
puede ser de cualquier color.
Ejemplo: Unas resistencias con los siguientes colores, tienen los siguientes valores de resistencia
y tolerancia:
Verde-Azul-Amarillo-Oro 560kW, 5%
Rojo-Negro-Rojo-Rojo 2kW, 2%
Rojo-Rojo-Marrn-Plata 220W, 10%
Segn todo lo anterior, implemente un algoritmo y un programa que permita calcular la resistencia
y la tolerancia de una resistencia, sabiendo los cdigos de colores. El subprograma tendr, como
mnimo, 4 argumentos, que sern nmeros naturales, y que indicarn el color de las bandas segn
la columna "Dgito". Los colores Oro, Plata y Ninguno tomarn los valores 10, 11 y 12
respectivamente.
PROBLEMAS PROPUESTOS
Problema No. 10. Ingresar tres nmeros a travs del teclado e imprimir la secuencia ordenada
de mayor a menor.
Problema No. 11. Calcular las posibles races para una ecuacin de segundo grado: ax2+bx+c=0.
Incluya en la solucin las races imaginarias.
Problema No. 12. Determinar la cantidad de dinero que recibir un trabajador por concepto de
las horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden
de 40, el resto se consideran horas extras y que estas se pagan al doble de una hora normal
cuando no exceden de 8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo
que se pagan las horas normales y el resto al triple.
Problema No. 13. Hacer un algoritmo y un programa en C++ que convierta las horas dadas en
forma de un nmero real, en nmero de horas, minutos, segundos y dcimas de segundo.
Problema No. 14. Hacer un algoritmo y un programa en C++ que pida ingresar las coordenadas de
un punto (x, y) e ubique su posicin en el plano cartesiano y su distancia al origen (0, 0).
Problema No. 15. Hacer un algoritmo y un programa en C++ que implemente los nmeros
complejos y sus operaciones bsicas: suma, resta, multiplicacin y dimisin. Los nmeros
complejos se definen en trminos de dos nmeros reales, llamados real e imaginario.
Departamento Acadmico de Ciencias de la Computacin - UNMSM Escuela Acadmica de Ingeniera de Sistemas - FISI
Tipos de Datos: Variables, Constantes, Asignaciones, Expresiones
Ing. John Ledgard Trujillo Trejo Pag. No. 13
Problema No. 16. Hacer un algoritmo para calcular las operaciones bsicas de los nmeros
racionales. Los nmeros racionales se definen en trminos de dos nmeros enteros, llamados
numerador y denominador.
Problema No. 17. Hacer un algoritmo y un programa en C++ que implemente una recta y
determinar sus caractersticas de la forma: y = mx + b. donde m es pendiente y b el punto de
corte en el eje de las abcisas. Usar las formulas de una recta con dos puntos p1(x1, y1) y p2(x2,
y2):
m = Y2 Y1
X2 X1
Determinar si la recta es horizontal, vertical u oblicua.
Y = mX + (Y1 mX1)