Está en la página 1de 56

PORTAFOLIO DE

EVIDENCIAS

PROYECTO INTEGRADOR Y COMPRENSIVO I

Integrantes: Adriana Medina Beltrn Alejandro Astrolabio Zavala Ramrez Mauricio Lpez Camacho
Grupo: E15-429
Profesor: Gilberto Santilln Tovar
Fecha: 19/02/15

Contenido
Introduccin a Lenguajes de Programacin ............................................................................................... 4
Breve historia ......................................................................................................................................................... 4
Diagramas de flujo ............................................................................................................................................... 6
Lenguaje algortmico .......................................................................................................................................... 7
Lenguaje C ...................................................................................................................................................................... 7
Compilador .................................................................................................................................................................. 7
Biblioteca estndar de C ................................................................................................................................. 8
Partes de un programa ........................................................................................................................................ 9
Variables .................................................................................................................................................................. 11
Por su tipo de datos .................................................................................................................................... 11
Por su tipo de almacenamiento ............................................................................................................... 12
Instrucciones de E/S ........................................................................................................................................ 13
Operadores y expresiones ............................................................................................................................... 14
Operadores aritmticos ................................................................................................................................ 14
Operadores relacionales y lgicos ...................................................................................................... 14
Condicionales ......................................................................................................................................................... 15
Sentencia if ....................................................................................................................................................... 15
Sentencia if completa .................................................................................................................................. 16
Operador condicional .................................................................................................................................... 17
Instruccin switch ........................................................................................................................................ 17
Sentencias de repeticin ............................................................................................................................... 18
Instruccin while .................................................................................................................................... 18
La instruccin do-while ............................................................................................................................. 19
La instruccin for .................................................................................................................................... 19
Funciones .................................................................................................................................................................. 20
Arreglos ..................................................................................................................................................................... 21
Prcticas desarrolladas ..................................................................................................................................... 24
Prcticas .................................................................................................................................................................. 24
Calculadora .......................................................................................................................................................... 24
5.7.6 Divisores de un nmero.................................................................................................................. 26
5.4.1 Tablero de ajedrez ........................................................................................................................... 27
5.4.1 Tablero de ajedrez definido por el usuario .................................................................. 28
5.3.7 Promediador ............................................................................................................................................ 30
5.3.2 Cuadrados y cubos ............................................................................................................................. 32

Portafolio de evidencias PIC I


4.6.1 Sueldos e incentivos ...................................................................................................................... 33
4.5.6 Cajero automtico ............................................................................................................................. 35
4.4.6 Tipos de curva .................................................................................................................................... 37
4.3.5 Elecciones de candidatos ............................................................................................................. 39
3.6.8 Lectura de datos ................................................................................................................................ 41
3.5.2 Horas, minutos y segundos .......................................................................................................... 43
3.5.2b Horas, minutos y segundos 2 ................................................................................................... 44
3.5.1 Fuerza entre dos cargas elctricas ..................................................................................... 45
3.4.3 Volumen y rea de un cilindro ................................................................................................. 47
3.4.2.b Operaciones con variables asignadas .............................................................................. 48
3.1.4 Sentencias de salida y uso de tabulador ......................................................................... 49
3.1.2 Sentencias de salida ...................................................................................................................... 50
Ejemplos ..................................................................................................................................................................... 51
Volumen y rea de una esfera.................................................................................................................. 51
Men de opciones .............................................................................................................................................. 52
Lectura de datos .............................................................................................................................................. 53
Condicional if ................................................................................................................................................... 54
Asignaciones 1 ................................................................................................................................................... 55
Asignaciones 2 ................................................................................................................................................... 56
Conclusin .................................................................................................................................................................... 56

Universidad Politcnica de San Luis Potos

Pgina 3

Portafolio de evidencias PIC I


Introduccin a Lenguajes de Programacin
Breve historia
La historia de la computacin se
remonta al uso del baco, el cual
es considerado como una de las
primeras herramientas de cmputo.
En el siglo XVII John Napier
invent los logaritmos para
simplificar las operaciones de
multiplicacin y divisin, las
estructuras de Napier (unos
palillos impresos con las tablas
del 1 al 9) se pueden realizar
rpidamente operaciones de
multiplicacin mediante simples
sumas de un solo dgito.
Otra herramienta que ayudo al avance en la computacin fue la regla de clculo,
la cual est basada en algoritmos. Con la regla de clculo es posible hacer
operaciones de multiplicacin y divisin de forma muy rpida con una precisin de
2 o 3 dgitos.
En 1642 pascal creo la primera calculadora mecnica, la cual realizaba sumas
mediante ruedas dentadas. En base a primera calculadora mecnica se fueron
creando mejores versiones.
En 1945 se desarroll el Calculador e Integrador Numrico Digital Electrnico
(ENIAC), Algunas caractersticas de la ENIAC eran:

18,000 tubos de vaco


70,000 resistores
10,000 capacitores
150 kilovatios de potencia
15,000 metros cuadrados de superficie
30 toneladas de peso trabajo
80223 horas
Se programaba mediante alambrado

Despus de ENIAC se desarrollaron 5 generaciones de


computadoras

Primera Generacin (1951-1958)

La primera generacin se bas en tubos de vaco,


tarjetas perforadas, tambores magnticos y eran
grandes y pesadas y consuman una gran cantidad de
potencia elctrica.

Segunda generacin (1958 1964)

Uso de transistores que vinieron a sustituir a los


bulbos. Memoria de ncleos de ferrita. Se
desarrollaron lenguajes como FORTRAN y COBOL.
Universidad Politcnica de San Luis Potos

Pgina 4

Portafolio de evidencias PIC I

Tercera Generacin (1964-1971)

Desarrollo de los circuitos integrados que permitieron compactar una gran


cantidad de transistores. Los circuitos integrados recuerdan los datos, ya que
almacenan la informacin como cargas elctricas.

Cuarta Generacin (1971-1983)

Computadoras basadas en el microprocesador que integra en un solo chip toda la


lgica de control de la computadora.

Quinta Generacin (1983 al presente)

Se expande el uso de las computadoras personales. Aparecen nuevos equipos


personales como las Laptop, Palmtop, Netbook, etc.
La programacin es parte de nuestra vida cotidiana ya que la mayora de los
aparatos electrnicos estn programados.

Universidad Politcnica de San Luis Potos

Pgina 5

Portafolio de evidencias PIC I


Diagramas de flujo
Se conoce como diagramas de flujo a
aquellos grficos representativos que se
utilizan para esquematizar conceptos
vinculados a la programacin.
Para que el diagrama de flujo tenga sentido
como tal, debe existir un camino hacia una
solucin que parte de un nico inicio y
arriba a un nico punto final.
Con el propsito de desarrollar un diagrama
de estas caractersticas, se recomienda
definir el propsito y destinatario del
grfico, identificar las ideas principales,
determinar los lmites y alcance del
proceso a detallar, establecer el nivel de
detalle requerido, identificar acciones,
procesos y subprocesos, construir el
diagrama y finalmente titularlo con exactitud.
Estos son los elementos que conforman un diagrama de flujo:

Universidad Politcnica de San Luis Potos

Pgina 6

Portafolio de evidencias PIC I


Lenguaje algortmico
Para resolver un problema mediante programacin, es fundamental comprender el
problema en s. Una vez que el problema se entiende, se procede al diseo del
algoritmo para resolverlo. Despus de que el algoritmo ha sido escrito y probado
en forma de pseudo cdigo, se puede proceder a traducirlo a algn lenguaje que la
computadora entienda para que pueda ser ejecutado por sta.
Definiremos un lenguaje para expresar los algoritmos de una forma conveniente. El
lenguaje algortmico ser cercano al lenguaje C para facilitar la traduccin a
programas ejecutables. Veamos el siguiente ejemplo:
Algoritmo Volumen de esfera. Este algoritmo calcula el volumen de una esfera dado
su radio. Se utiliza la variable RADIO para representar el radio de la esfera y
la variable VOLUMEN para representar su volumen. Suponemos ambas variables como
nmeros reales.
1. [Leer el radio de la esfera]
Leer(RADIO)
2. [Calcular el volumen de la esfera]
VOLUEN = 4*3.1416*RADIO^3
3. [Se imprimen el dato y el resultado]
Escribe(El radio de la esfera es , RADIO)
Escribe(El volumen de la esfera es , VOLUMEN)
4. [Termina]
Salir
El algoritmo se llama volumen de esfera. Es conveniente siempre asignar un
nombre a cada algoritmo para poder identificarlo claramente adems de hacer una
breve descripcin del propsito del algoritmo al inicio, tambin en esta seccin
se puede definir el tipo y propsito de cada una de las variables utilizadas.
Cada paso del algoritmo esta numerado secuencialmente. Los comentarios los
encerraremos en parntesis cuadrados ( [ ] ). Estos comentarios solo sirven para
aclarar cada uno de los pasos del algoritmo. Se ha utilizado la palabra Salir
para indicar la terminacin del algoritmo en la ltima lnea.
Otros podrn tener varios finales, esto implica que algunos finales no se
encuentren en la ltima lnea.

Lenguaje C
Compilador
Antes de poder ejecutar programas debemos de disponer de algn compilador de C.
En Internet se encuentran algunos compiladores de uso gratuito como Dev-C. Una
vez que dispongamos del compilador, escribimos el programa en el editor de texto
y lo guardamos con algn nombre. Algunos compiladores suponen que los programas
tienen extensin .c o .cpp generalmente. Una vez guardado en un archivo
podemos proceder a traducirlo a lenguaje mquina para que pueda ser ejecutado. El
proceso de traduccin lo realiza el compilador, si no hay errores el compilador
generara un archivo ejecutable que podemos correr.
Si el compilador encuentra cualquier tipo de error, enviara el mensaje adecuado,
sobre todo si el compilador es del tipo de ambiente de trabajo como Dev-C. En
todo caso, deber corregir los errores encontrados y volver a compilar hasta que
no haya errores.
El proceso de ejecucin podemos separarlo en varias fases. La primera fase es la
escritura del programa en el editor de texto. Luego tenemos la fase de
Universidad Politcnica de San Luis Potos

Pgina 7

Portafolio de evidencias PIC I


compilacin del programa, estas dos fases pueden repetirse en caso de que haya
errores. La fase de compilacin genera el programa ejecutable tambin llamado
programa objeto. Por ultimo esta la fase de ejecucin en la que el programa es
ejecutado por la computadora, en este punto se introducen los datos de entrada,
si los hay, y se despliega la salida que se haya especificado, tambin si la hay.
Tambin en la fase de ejecucin se presentan errores, si los hay, estos errores
se debern quiz a que el programa no cumple con las especificaciones para
Resolver el problema dado. Se deber a proceder a corregir los errores que se
presenten en la ejecucin repitiendo todo el proceso de escritura-compilacinejecucin nuevamente.

Biblioteca estndar de C
La biblioteca estndar de C (tambin conocida como libc) es una recopilacin de
ficheros cabecera y bibliotecas con rutinas, estandarizadas por un comit de
la Organizacin Internacional para la Estandarizacin (ISO), que implementan
operaciones comunes, tales como las de entrada y salida o el manejo de cadenas.
A diferencia de otros lenguajes como COBOL, Fortran, o PL/1, C no incluye
palabras clave para estas tareas, por lo que prcticamente todo programa
implementado en C se basa en la biblioteca estndar para funcionar.
El lenguaje C contiene numerosas funciones, cuando se emplean funciones de esta
biblioteca estndar, se incrementa la transportabilidad de los programas.
Las funciones estndar se dividen en grupos, todas las funciones que pertenecen
al mismo grupo estn declaradas en el archivo de cabecera, la letra "h" significa
header en ingls y es lo que se llama cabecera.
Para incluir alguna funcin perteneciente a estas cabeceras debemos escribir
lneas de cdigo como se muestra de ejemplo:
#include
En la siguiente tabla se muestran los nombres de las bibliotecas ms comunes y su
descripcin.
BIBLIOTECAS Y DESCRIPCIONES DE USO
NOMBRE DE
BIBLIOTECA
assert.h
alloc.h
ctype.h
dir.h
errno.h
float.h
limits.h
math.h
setjmp.h
signal.h

DESCRIPCIN
Es proporcionar una definicin de la macro assert, que imprime un
mensaje de error y aborta el programa
Existen funciones para asignar, liberar memoria, u obtener
informacin de bloques de memoria.
Son funciones que nos permiten conocer la naturaleza de un
caractr, o bien para convertir de maysculas a minsculas y
viceversa; y valores enteros a cdigos ASCII.
Esto permite ordenar, crear, modificar, mover y eliminar
directorios
Representa los nmeros de error, despus que ocurre un error se
puede consultar el valor de la variable del sistema deerrno para
obtener ms informacin sobre ese error.
Define los lmites de los tipos de coma flotante
Define los lmites de los diferentes tipos de enteros
Contiene las funciones matemticas estndar utilizadas en C y C++
Define el tipo de jmp_buf para algunas funciones.
Contiene funciones de estado.

Universidad Politcnica de San Luis Potos

Pgina 8

Portafolio de evidencias PIC I


stdarg.h
stdef.h
stdio.h
stlib.h
string.h
time.h

Define funciones que pueden ser llamadas con diferentes nmeros de


argumentos, de modo que se pueda escribir f(a) y f(a,b).
Se definen algunos tipos especiales
Incorporan las funciones de Entrada - Salida E/S estndar, tipos y
macros
Declara funciones que son tiles para diferentes propsitos, en
especial de bsqueda y ordenacin.
Este archivo contiene funciones para manejo de cadenas de
caracteres.
Contiene funciones relativas a fechas y horas

Partes de un programa
Todo programa en C consta de uno o ms mdulos llamados funciones. Una de las
funciones se llama main. El programa siempre comenzar por la ejecucin de la
funcin main, la cual puede acceder a las dems funciones. Las definiciones de
las funciones adicionales se deben realizar aparte, bien precediendo a main o
siguiendo a main.
Ejemplo:
/*Primer programa en C */
#include <stdio.h> /*biblioteca para entrada y salida*/
#include <conio.h> /*biblioteca para la funcin getch*/
int main()/*aqu inicia el programa */
{
printf("Hola mundo!.\n");/*sentencia de salida*/
getch();
return 0;/*terminacin normal del programa*/
}/*fin del programa*/

La primera lnea es un comentario. Los comentarios inician con /* y


terminan con */.

La segunda lnea sirve para incluir la biblioteca de entrada y salida. El


lenguaje C no tiene instrucciones de entrada y salida propias, por tanto
debemos siempre incluir alguna biblioteca para realizar estas operaciones.

La funcin main es la que contiene las sentencias ejecutables del programa.


Todo
programa en C debe tener una funcin main. La palabra int antes de main
indica que la funcin regresa un valor entero. La palabra int es una palabra
reservada, a lo largo del texto las palabras reservadas sern representadas
con tipo negrita.

Los parntesis despus de la palabra main se usan para definir los


parmetros de la funcin, en este caso no tiene ningn parmetro. En algunas
ocasiones los parmetros van a ser necesarios.

La llave que abre inicia un bloque de instrucciones. La primera instruccin


es
printf("Hola mundo!\n");/*sentencia de salida*/ Esta instruccin es una
sentencia de salida. Note que se ha incluido un comentario para aclarar el
significado de esta lnea.

Universidad Politcnica de San Luis Potos

Pgina 9

Portafolio de evidencias PIC I

La palabra printf se utiliza para desplegar letreros y valores de variables


o expresiones. Esta palabra designa a una funcin encargada de dichas
operaciones.

Los parntesis sirven para delimitar los elementos de salida. En este caso
es un
letrero el cual debe ir encerrado entre comillas, las comillas no se
despliegan. En este caso se desplegara la cadena "Hola mundo!\n".

La secuencia de caracteres \n indica que se mueva el cursor a la siguiente


lnea, a este tipo de controles se les llama secuencias de escape.

La sentencia getch()es una funcin que lee un caractr desde el teclado,


esto permite que el programa se detenga hasta que el usuario presione una
tecla.

Por ltimo, la sentencia return 0 indica una terminacin normal (sin


errores) del programa.

Note que todas las sentencias deben terminarse con un punto y coma, esto va
a ser necesario en la mayora de los casos de las sentencias en C.

La funcin printf imprime un letrero y deja el cursor en la posicin que


sigue al ltimo caractr impreso.

El siguiente ejemplo imprime una sola lnea utilizando tres sentencias printf.

/*Ejemplo de varias sentencias printf una sola lnea de salida */


#include <stdio.h> /*biblioteca para entrada y salida*/
#include <conio.h> /*biblioteca para la funcin getch*/
int main(){
printf("Esta es una");
printf(" cadena impresa ");
printf("en una sola lnea\n");
getch();
return 0;
}
Tambin pueden imprimirse varias lneas mediante una sola sentencia printf, por
ejemplo:
/*Ejemplo de printf, una sentencia varias lneas*/
#include <stdio.h>
#include <conio.h>
int main(){
printf("Lnea 1\nEsta es la lnea 2\ny est es la 3\n");
getch();
return 0;
}
Otra secuencia de escape para formatear la salida es \t (tabulador). Mediante el
tabulador
se pueden imprimir varias cadenas en columnas predeterminadas. Ejemplo:
#include <stdio.h>
#include <conio.h>
int main(){
Universidad Politcnica de San Luis Potos

Pgina 10

Portafolio de evidencias PIC I


printf("nombre\tdireccin\ttelfono\n");
printf("juan\tolmo 204 \t8-12-12-34\n");
printf("maria\tpino 565 \t8-34-27-16\n");
getch();
return 0;
}

Variables
Una variable es un identificador que se utiliza para representar cierto tipo de
informacin dentro de una determinada parte del programa.
En su forma ms sencilla, una variable es un identificador que se utiliza para
representar un dato individual; es decir, una cantidad numrica o una constante
de carcter. En alguna parte del programa se asigna el dato a la variable. Este
valor se puede recuperar despus en el programa con simplemente hacer referencia
al nombre de la variable.
Hay dos formas diferentes de caracterizar variables, por su tipo de datos y por
tipo de almacenamiento.
Por su tipo de datos
Las variables permiten almacenar nmeros de varias clases, as como otro tipo de
datos. Analizaremos as variables que almacenan nmeros enteros.
Los nombres de las variables deben ser identificadores vlidos. Un identificador
es vlido si es una secuencia de letras, dgitos y guiones bajos (_) que no
comience con un dgito. Cabe destacar que el lenguaje C distingue entre letras
maysculas y minsculas, de tal manera que x2 es diferente de X2.
Es conveniente utilizar palabras significativas para definir variables, de esta
manera ser ms sencillo la escritura y depuracin de programas.
Todas las variables en C deben declararse antes de ser utilizadas. La declaracin
de las variables consiste en la definicin de su tipo y nombre, opcionalmente se
puede dar un valor inicial a la variable.
La sintaxis es la siguiente:
Tipo nombre;
Tipo nombre = valor;
Se pueden declarar varias variables del mismo tipo simultneamente.
Ejemplos:
int suma;
Declara la variable suma de tipo entero.
int cuenta, promedio, suma = 0;
Declara las variables siguientes: cuenta, promedio y suma de tipo entero y asigna
0 a la variable suma.

Universidad Politcnica de San Luis Potos

Pgina 11

Portafolio de evidencias PIC I


El lenguaje C suministra varios tipos de nmeros enteros y reales que se utilizan
con diferentes propsitos. La siguiente tabla resume estos tipos:

La asignacin es la operacin ms elemental que puede aplicarse a una variable.


El operador = se utiliza para esta propsito.
El siguiente ejemplo asigna valores a dos variables enteras y calcula la divisin
de los dos nmeros. El operador de divisin es la diagonal normal /.

/*asignacin de variables*/
#include <stdio.h>
#include <conio.h>
int main(){
int divisor, dividendo, cociente;
divisor = 13;
dividendo = 45;
cociente = dividendo / divisor;
printf("dividendo: %d\n",dividendo);
printf("divisor: %d\n",divisor);
printf("cociente: %d\n",cociente);
getch();
return 0;
}
Por su tipo de almacenamiento
Hay cuatro especificaciones diferentes de tipo de almacenamiento en C;
automtica, externa, esttica y de registro, que se identifican con las palabras
reservadas auto, extern, static y register respectivamente. Abordaremos ahora los
dos tipos ms comunes que son automatic y extern.
A veces se puede establecer el tipo de almacenamiento asociado a una variable
simplemente por la posicin de su declaracin en el programa. En otras
situaciones, sin embargo, la palabra reservada que especifica un tipo particular
de almacenamiento se tiene que colocar al comienzo de la declaracin de la
variable.

Universidad Politcnica de San Luis Potos

Pgina 12

Portafolio de evidencias PIC I


A continuacin se muestran varias declaraciones tpicas de variables que incluyen
la especificacin de un tipo de almacenamiento:
auto int a, b,c;
extern float raiz1, raiz2;
static int cont=0;
extern char asterisco;

Variables automticas
Se declaran siempre dentro de la funcin y son locales a la funcin donde han
sido declaradas, es decir, su mbito est confinado a esa funcin . Las variables
automticas declaradas en otras funciones sern independientes unas de otras,
incluso si tienen el mismo nombre.

Variables externas o globales


Es contraste con las variables automticas, no est confinada a funciones
simples. }su mbito se extiende desde el punto de definicin hasta el resto del
programa . Por tanto, generalmente abarcan dos o ms funciones y frecuentemente
todo el programa.
Como las variables externas se reconocen globalmente, se puede acceder a las
mismas desde cualquier funcin que se encuentre dentro de su mbito. Mantienen
los valores asignados dentro de este mbito. Por tanto a una variable externa se
le puede asignar un valor dentro de una funcin y este valor puede usarse (al
acceder a la variable externa) dentro de otra funcin.

Instrucciones de E/S
Lenguaje C va acompaado de una coleccin de funciones de biblioteca que incluye
un cierto nmero de funciones de entrada/salida. Las ms comunes son getchar,
putchar, scanf, printf, gets y puts. Estas seis funciones nos permiten la
transferencia de informacin entre la computadora y los dispositivos de
entrada/salida estndar, como un teclado y un monitor por mencionar un ejemplo.
Las dos primeras funciones, getchar y putchar, permiten la transferencia de
caracteres individuales hacia adentro y hacia afuera de la computadora, scanf y
printf son ms complicadas, pero permiten la transferencia de caracteres
individuales, valores numricos y cadenas de caracteres; gets y puts permiten la
entrada y salida de cadenas de caracteres.
El siguiente es un esquema de un programa de C que hace uso de varias rutinas de
entrada/salida de la biblioteca estndar de C.
#include<stdio.h>
int main(){
char c,d;

/*declaraciones */

float x, y;
Int i, j, k;
c=getchar();

/*entrada de un carcter*/

scanf(%f,&x);

/*entrada de nmero en coma flotante*/

Universidad Politcnica de San Luis Potos

Pgina 13

Portafolio de evidencias PIC I


scanf(%d %d,&I, &j);

/*entrada de enteros*/

. . . . . .

/*instrucciones de accin*/

putchar(d);

/*salida de un caractr*/

printf(%3d

%7.4f, k,y);

/*salida de nmeros*/

Operadores y expresiones
Las constantes, variables, elementos de una formacin y referencias a funciones
se pueden unir con varios operadores para formar expresiones. En el lenguaje C
existen un gran nmero de operadores que se pueden agrupar en distintas
categoras, por ahora slo abordaremos dos tipos; los operadores aritmticos y
los operadores lgicos.
Operadores aritmticos
Existen cinco operadores aritmticos en C:
Operador
Propsito
+
Suma
Resta
*
Multiplicacin
/
Divisin
%
Residuo de divisin entera
Los operandos sobre los que actan los operadores aritmticos deben representar
valores numricos. Por tanto, los operadores deben de ser cantidades enteras, en
coma flotante o caracteres (stos representan valores enteros, determinados por
el conjunto de caracteres de la computadora). El operador (%) requiere que los
dos operandos sean enteros y el segundo operando no nulo. Anlogamente el
operador de divisin (/) requiere que el segundo operando no sea nulo.
Cabe destacar que si uno de los operandos tiene signo negativo, las operaciones
de suma, resta, multiplicacin y divisin tendrn resultados cuyo signo estar
determinado por las reglas del lgebra.
Operadores relacionales y lgicos
En C existen 4 operadores relacionales:
Operador
<
<=
>
>=

Significado
Menor que
Menor o igual que
Mayor que
Mayor o igual que

Estos operadores se encuentran dentro del mismo grupo de precedencia, que es


menor que la de los operadores unarios y aritmticos. La asociatividad de estos
operadores es de izquierda a derecha. Muy asociados a los operadores relacionales
existen dos operadores de igualdad:
Operador Significado
==
Igual que
!=
No igual que
Universidad Politcnica de San Luis Potos

Pgina 14

Portafolio de evidencias PIC I


Los operadores de igualdad se encuentran en otro grupo de precedencia, por debajo
de los operadores relacionales. La asociatividad de estos operadores es tambin
de izquierda a derecha. Estos seis operadores se utilizan para formar expresiones
lgicas que representan condiciones que pueden ser verdaderas o falsas. LA
expresin resultante ser de tipo entero, ya que verdadero ser representado por
el valor entero 1 y falso por el valor 0.

Condicionales
Sentencia if
Permite decidir ejecutar una o ms instrucciones dependiendo del valor de una
expresin.
La sintaxis de la sentencia if es:
if( condicin )
Instruccin o bloque;
Un bloque est formado por una serie de instrucciones encerrado entre llaves {}.
La condicin es cualquier expresin que genere un valor numrico real o entero.
La instruccin o bloque se ejecutar si la condicin toma un valor diferente de
cero.
En el lenguaje algortmico usaremos la construccin siguiente.
SI condicin ENTONCES
Sentencias
El programa siguiente determina si un nmero tecleado es positivo o negativo:
#include <stdio.h>
#include <conio.h>
main(){
float numero;
printf("Teclee un nmero: ");
scanf(%d,&numero);
if(numero>=0)
printf("nmero positivo\n");
getch();
}

Universidad Politcnica de San Luis Potos

Pgina 15

Portafolio de evidencias PIC I


Sentencia if completa
Consta de una parte que se ejecuta cuando la condicin es 1 y otra cuando es 0.
La sintaxis es:
if( condicin )
instruccin o bloque;
else
Instruccin o bloque;
En el lenguaje algortmico usaremos la construccin siguiente.
SI condicin ENTONCES
Sentencias
SI NO
Sentencias
El siguiente ejemplo es un programa que determina si dos rectas se intersecan o
no, y si se intersecan determina las coordenadas (x, y) de la interseccin.
Suponga que las rectas se representan mediante una ecuacin de la forma y = mx
+b.
Supondremos que el usuario introduce los valores de m y b para cada recta. Para
que dos rectas se intercepten es necesario que las pendientes sean diferentes,
usaremos esta condicin para resolver el problema.
#include <stdio.h>
#include <conio.h>
int main(){
float pendiente1, pendiente2, ordenada1 ,ordenada2,x,y;
printf("teclee la pendiente y ordenada al origen 1: ");
scanf("%f%f",&pendiente1,&ordenada1);

/*Leer datos de las dos rectas*/

printf("teclee la pendiente y ordenada al origen 2: ");


scanf("%f%f",&pendiente2,&ordenada2);

/*Leer datos de las dos rectas*/

if(pendiente1 != pendiente2){ /*Determina interseccin, si existe*/


x = (ordenada2 - ordenada1)/( pendiente1- pendiente2);
y = pendiente1*x+ ordenada1;
printf("Las rectas se interceptan en: %f, %f",x,y);
}else
printf("Las rectas no se interceptan...");
getch();
Universidad Politcnica de San Luis Potos

Pgina 16

Portafolio de evidencias PIC I


}
Operador condicional
Una instruccin que hace uso del operador condicional (?: )se denomina expresin
condicional. Se puede escribir una instruccin de este tipo en lugar de la
instruccin if-else.
Una instruccin condicional se escribe de la siguiente forma:
expresin 1? expresin 2: expresin 3
Primero se evala expresin 1, si sta es verdadera, es decir que su valor no sea
nulo, entonces expresin 2 es evaluada y ste sera el valor de la expresin
condicional. Sin embargo si expresin 1 es falsa, o sea que su valor es 1,
entonces se evala la expresin 3 y ste es el valor de expresin condicional.
Ntese que solo se evala una de las expresiones (expresin 2 o expresin 3)
cuando se determina el valor de una expresin condicional.
Ejemplo:
En la expresin condicional que se muestra a continuacin, supongamos que i es
una variable entera.
(i<0)? 0:100
Se evala primero la expresin (i<0). Si es verdadera (si el valor de i es menor
que cero), el valor de toda la expresin condicional es 0. En cualquier otro caso
(si el valor de i no es menor que cero), el valor de toda la expresin
condicional es 100.

Instruccin switch
Esta instruccin hace que se seleccione un grupo de instrucciones entre varios
grupos disponibles. La seleccin se basa en el valor de una expresin que se
incluye en la instruccin switch.
La forma general de la instruccin switch es:
Switch(expresin) instruccin
En donde expresin devuelve un valor entero. Hay que tener en cuenta que
expresin tambin puede ser de tipo char, ya que los caracteres individuales
tambin tienen valores enteros.
Generalmente la instruccin incluida comprende posibles opciones a seguir, y cada
una de estas opciones se expresa como un grupo de una o ms instrucciones
individuales dentro de las mismas.

switch (<expresin>){
case <constante>:[case <constante>:]<sentencias>;break;
...
[default:<sentencias>;break;]
}
Cada caso se precede por la palabra reservada case y una constante numrica, al
final debe colocarse la sentencia break para que el control pase al final de la
sentencia switch, de no hacerlo as, se ejecutar la siguiente sentencia case. La
parte default es opcional y se ejecuta en caso de que no se cumpla ningn caso.

Universidad Politcnica de San Luis Potos

Pgina 17

Portafolio de evidencias PIC I


El siguiente programa utiliza una sentencia switch para desplegar un da de la
semana, si el usuario escribe un nmero no vlido, se desplegar el letrero da
no vlido.
#include <stdio.h>
#include <conio.h>
int main(){
int dia;
printf("teclee el nmero del da: ");
scanf("%d",&dia);
switch(dia){
case 1:printf("Lunes");break;
case 2:printf("Martes");break;
case 3:printf("Mircoles");break;
case 4:printf("Jueves");break;
case 5:printf("Viernes");break;
case 6:printf("Sabado");break;
case 7:printf("Domingo");break;
default: printf("da no vlido");
}
getch();
}

Sentencias de repeticin
Instruccin while
La instruccin while se utiliza para generar bucles, en los cuales un grupo de
instrucciones se ejecuta repetidamente, hasta que se satisface alguna condicin.
La forma general de la instruccin while es la siguiente:
While (expresin) instruccin
La instruccin se ejecutar repetidamente, mientras el valor de la expresin sea
verdadero, es decir mientras sta tenga un valor no nulo. Esta instruccin puede
ser simple o compuesta, aunque suele ser compuesta. Debe incluir algn elemento
que altere el valor de expresin, proporcionando as la condicin de salida del
bucle.
Ejemplo:

El programa para sumas 20 nmeros es el siguiente.

Universidad Politcnica de San Luis Potos

Pgina 18

Portafolio de evidencias PIC I


#include <stdio.h>
#include <conio.h>
int main(){
float suma = 0.0, num;
int contador = 0;
while(contador < 20){
printf("Teclee un nmero:");
scanf("%f",&num);
suma = suma + num;
contador = contador + 1;
}
printf("\nLa suma de los 20 nmeros es: %5.0f\n",suma);
getch();
}
La instruccin do-while
Cuando se utiliza la instruccin while, la comprobacin para la continuacin del
bucle se realiza al comienzo de cada pasada, sin embargo, a veces es deseable
disponer de un bucle en el que se realice la comprobacin al final de cada
pasada. Esto se puede hacer mediante la instruccin do-while.
La sintaxis es la siguiente:
Do instruccin while (expresin)
La instruccin se ejecutar repetidamente mientras que el valor de expresin sea
verdadero, es decir no nulo, es importante notar que la instruccin se ejecutar
al menos una vez ya que la comprobacin de la condicin de repeticin no se
realiza hasta el final de la primera pasada por el bucle. La instruccin puede
ser simple o compuesta y debe incluir algn elemente que altere el valor de
expresin para que el bucle tenga un final.
Ejemplo:

El siguiente programa que imprime los primeros 10 enteros y sus cuadrados.


#include <stdio.h>
#include <conio.h>
main(){
int n = 1;
do{
printf(%2d\t%d\n,n,n*n);
n++;
}while(n<11);
getch();
}
La instruccin for
Esta instruccin incluye una expresin que especifica el valor inicial de un
ndice, otra expresin que determina cuando se contina o no el bucle y una
tercera expresin que permite que el ndice se modifique al final de cada pasada.
La sintaxis es la siguiente:
For(expresin 1; expresin 2; expresin 3) instruccin

Universidad Politcnica de San Luis Potos

Pgina 19

Portafolio de evidencias PIC I


En donde instruccin 1 se utiliza para inicializar algn parmetro (denominado
ndice) que controla la repeticin del bucle, expresin 2 representa una
condicin que debe ser satisfecha para que contine la ejecucin del bucle y
expresin 3 se utiliza para modificar el valor del parmetro inicialmente
asignado por expresin 1. Tpicamente expresin 1 es una expresin de asignacin,
expresin 2 es una expresin lgica y expresin 3 una expresin unaria o de
asignacin.
Ejemplo: El siguiente programa utiliza un ciclo for para imprimir el monto

del capital acumulado ao por ao de un capital al 5% de inters.


#include <stdio.h>
#include <conio.h>
#include <math.h>
int main() {
81
float monto; // monto del depsito
float principal = 1000.0; // monto principal (al inicio)
float tasa = .05; // tasa de inters
int anio;
printf("Anio Monto del depsito\n");
for (anio = 1; anio <= 10; anio++ ) {
monto = principal * pow( 1.0 + tasa, anio );
printf("%4d%21.2f\n",anio,monto);
}
getch();
}

Funciones
Las funciones son los bloques de construccin ms fundamentales en C. El
uso de funciones permite la construccin de programas ms grandes, mejor
diseados y en general ms eficientes en su ejecucin y depuracin. Las
funciones son bloques de instrucciones que efectan un proceso especfico
y en algunos casos regresan valores.
El propsito fundamental de las funciones es dividir los programas en
mdulos ms manejables que permitan resolver problemas ms complejos.
Las funciones en C se declaran mediante el siguiente formato:
Tipo_devuelto nombre_de_funcion(lista de parmetros o argumentos){
Sentencias (declaraciones, instrucciones, etc.)
}
Tradicionalmente en C se declaran como prototipos al inicio del programa.
Despus se declara la funcin main, y despus se hace la declaracin
formal de las funciones.
Tambin pueden declararse las funciones al inicio del programa y despus
declarar la funcin main sin declarar prototipo. Los prototipos constan de
solo el encabezado, es decir, el tipo devuelto, el nombre de la funcin y
la lista de parmetros, en este caso la lista de parmetros puede constar
solo de los nombres de los tipos de cada parmetro.

Universidad Politcnica de San Luis Potos

Pgina 20

Portafolio de evidencias PIC I

Prototipo

Significado
Funcion f que devuelve un valor entero
int f(int a, float x, float y);
y tiene como argumentos un valor
entero y dos de punto flotante.
Funcion g que devuelve un valor de
double g(double a, int c);
doble precisin y tiene como
argumentos un valor de doble precisin
y un valor entero.
Funcion m que devuelve un entero
short m(int n, char c);
corto y tiene como parmetros un
entero y un caractr.

El siguiente programa define una funcin para calcular el rea de una


esfera y la llama dentro de la funcin main. El usuario debe escribir el
radio de la esfera.
#include <stdio.h>
#include <conio.h>
/*prototipo de funcin, devuelve un flotante y lleva
un parmetro de tipo flotante*/
float areaEsfera(float);
main(){
float r,area;
printf("radio: ");
scanf("%f",&r);
/*llamada a la funcin areaEsfera*/
area = areaEsfera(r);
printf("El area de la esfera es: %f\n",area);
getch();
}
/*definicin de la funcin areaEsfera*/
float areaEsfera(float radio){
return 4*3.14159265358979*radio*radio;
}

Arreglos
Un arreglo es una coleccin ordenada de elementos del mismo tipo. Los arreglos
permiten referirse a una coleccin de valores mediante un solo nombre. Para
acceder a los elementos individuales de un arreglo se utiliza uno o ms ndices
que deben ser un nmero entero o una expresin de tipo entero.
Los arreglos pueden ser de cualquier tipo: int, float, double, char, o se puede
tener elementos que sea estructuras ms complejas.
Los arreglos de una dimensin solo utilizan un ndice para localizar cada uno de
sus elementos componentes. Para referirse a un elemento del arreglo se utilizan
corchetes ([ , ]) para encerrar el ndice del elemento del arreglo.
En el lenguaje C los ndices varan entre cero y un mximo igual al nmero de
elementos del arreglo menos uno.

Universidad Politcnica de San Luis Potos

Pgina 21

Portafolio de evidencias PIC I


Una representacin grfica es la de la figura siguiente.
Tipo nombre[tamao];
El tamao es cualquier constante entera positiva mayor que cero.
Ejemplos:
Arreglo
float m[120];
char c[256];
unsigned char y[1024];
int a[23];

Descripcin
Declara un arreglo de 120 elementos
de tipo flotante.
Declara un arreglo de 256 elementos
de tipo caractr.
Declara un arreglo de 1024 elementos
de tipo caractr sin signo.
Declara un arreglo de 23 elementos
de tipo entero

Al igual que las variables de tipo simple, se pueden iniciar los valores de un
arreglo al momento de declararlo.
El siguiente programa inicializa y despliega dos arreglos de caracteres y muestra
cada uno de los elementos. En el ejemplo se despliega cada arreglo utilizando el
formato %s que sirve para desplegar o leer cadenas de caracteres. Tambin se
despliega cada elemento como un caractr y como un nmero entero.
#include <stdio.h>
#include <conio.h>
main(){
char a[10]="hola";
char b[10]={'h','o','l','a'};
printf("%s\n",a);
printf("%s\n",b);
for(int i=0;i<10;i++)
printf("%4d %c%4d %c\n",a[i],a[i],b[i],b[i]);
getch();
}
El programa desplegara los siguientes valores:
hola
hola
104 h 104 h
111 o 111 o
108 l 108 l
97 a 97 a
0 0
0 0
0 0
0 0
0 0
0 0
En el caso de arreglo de caracteres solo podrn iniciarse usando la notacin de
cadenas si la cadena es de longitud ms corta que el tamao del arreglo, ya que C
inserta automticamente un caractr nulo (\0) al final de la cadena.
Se puede omitir el tamao de un arreglo si se inicializa en la declaracin. En el
caso de arreglos de caracteres se agrega al final un caractr nulo. Si no se
inicializa es forzoso declarar el tamao del arreglo.
Universidad Politcnica de San Luis Potos

Pgina 22

Portafolio de evidencias PIC I


Por ejemplo.
int a[] = {1, 2, 3, 4};
char m[] = {F,i,n};
char s[] = color;
Se declara un arreglo de enteros de 4 elementos con los siguientes valores.
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
El arreglo de caracteres m tendr tres elementos con el siguiente contenido.
m[0] = F;
m[1] = i;
m[2] = n;
Si se despliega, por ejemplo utilizando printf(m) aparecer basura, despus de la
cadena Fin, que se encuentre en la memoria ya que no se agrega el terminador
nulo. El
arreglo s se inicia con seis elementos con el siguiente contenido.
s[0] = c;
s[1] = o;
s[2] = l;
s[3] = o;
s[4] = r;
s[5] = \0;
En los siguientes ejemplos se inician los arreglos elemento por elemento. El
siguiente
ejemplo inicializa la variable x con nmeros impares consecutivos:
int x[100], i;
for(i = 0; i<100 ; i++)
x[i] = 2*i + 1;

Universidad Politcnica de San Luis Potos

Pgina 23

Portafolio de evidencias PIC I


Prcticas desarrolladas
Prcticas
Calculadora
Mediante el uso de funciones el usuario puede decidir qu operacin matemtica
desea realizar, con dos nmeros que introdujo previamente.
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

int multiplicacion(int, int);

/*Definicin de prototipos de funcin*/

int suma(int, int);


int resta(int, int);

int main(){

int num1, num2;

/*Definicin de variables*/

char op;

printf("Ingresar operacion a realizar (s-suma) (r-resta) (m-multiplicacion):


");
scanf("%c", &op);

/*Impresin en pantalla y lectura de datos*/

printf("Ingresar dos numeros: \n");


scanf("%d", &num1);
scanf("%d", &num2);

switch(op){

/*Sentencia switch para multiopcionales*/

case 'm': printf("El resultado de multiplicar %d x %d = %d", num1,


num2, multiplicacion(num1,num2));break; /*Llamadas a funcin*/
case 's': printf("El resultado de sumar %d + %d = %d", num1, num2,
suma(num1,num2));break;
/*Llamadas a funcin*/
Universidad Politcnica de San Luis Potos

Pgina 24

Portafolio de evidencias PIC I


case 'r': printf("El resultado de restar %d de %d es igual a %d",
num2,num1, resta(num1,num2));break;
/*Llamadas a funcin*/
default: printf("Operacin no valida");
}

getch();

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 25

Portafolio de evidencias PIC I


5.7.6 Divisores de un nmero
Escriba un programa que encuentre los divisores de un nmero.
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

int main(){
int numero, divisor;

/*Definicin de variables*/

printf("Indique el numero a obtener sus divisores: "); /*Impresin en


pantalla y lectura de
datos*/
scanf("%d", &numero);

divisor=numero;

/*Asignacin de valor a variable*/

while(divisor>0){

/*Ciclo while*/
if(numero%divisor==0)
printf("%d\n", divisor);
divisor--;
}

getch();

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 26

Portafolio de evidencias PIC I


5.4.1 Tablero de ajedrez
Escriba un programa para dibujar un patrn de tablero de ajedrez de tamao 8:
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

main(){

for(int num=1; num<=20; num++){

/*Ciclo for para recorrer contador*/

if((num%2)!=0)

/*Condicional if-else*/

printf("* * * * * * * * * * \n");
else
printf(" * * * * * * * * * *\n");
}

getch();

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 27

Portafolio de evidencias PIC I


5.4.1 Tablero de ajedrez definido por el usuario
Variante del ejercicio anterior donde ahora el usuario puede definir las
dimensiones del tablero de ajedrez, esto se logra mediante condicionales if
anidadas dentro de un ciclo while.
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

int main(){
int ancho, alto, ancho1;

/*Definicin de variables*/

printf("Ingresar ancho del tablero: "); scanf("%d", &ancho); /*Impresin en


pantalla y lectura de datos*/

printf("Ingresar alto del tablero: "); scanf("%d", &alto);


pantalla y lectura de datos*/

ancho1=ancho;

/*Inicializacin de variables*/

while(alto>0){

/*Ciclos while anidados*/

/*Impresin en

while(ancho1>0){
if(alto%2==0){

/*Condicional if-else*/

if(ancho1%2==0)
printf("

");

else
printf("*");
}
else{

/*Condicional if-else*/
if(ancho1%2==0)
printf("*");
else
printf("

Universidad Politcnica de San Luis Potos

");
Pgina 28

Portafolio de evidencias PIC I


}
ancho1--;

/*Alteracin de expresin de

condicin para el ciclo*/


}
printf("\n");
ancho1=ancho;
alto--;
}
getch();

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 29

Portafolio de evidencias PIC I


5.3.7 Promediador
Desarrolle un algoritmo para calcular el promedio ponderado de n nmeros:
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

int main(){

float num=0,num1,cont=0,prom;

/*Definicin de variables*/

int resp;
do{
/*Ciclo do-while para
verificacin de la condicin de
repeticin despus de la
ejecucin de instrucciones*/

printf("Ingresar numero a promediar: "); /*Impresin en pantalla y lectura


de datos*/
scanf("%f", &num1);

num=num+num1;

/*Reasignacin de valores a variable*/

printf("Desea ingresar otro numero? SI-1 NO-0: ");

/*Impresin en
pantalla y lectura de
datos*/

scanf("%d", &resp);

cont++;
}
while(resp==1);

prom=num/cont;

Universidad Politcnica de San Luis Potos

Pgina 30

Portafolio de evidencias PIC I


printf("El promedio es %f", prom);

getch();

/*Se despliega en pantalla el


resultado*/

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 31

Portafolio de evidencias PIC I


5.3.2 Cuadrados y cubos
Disee un algoritmo para imprimir los cuadrados y cubos de los primeros 20
nmeros enteros.
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

int main(){

printf("NUMERO\t\tCUADRADO\tCUBO\n");

/*Se despliegan los


encabezados de las columnas/*

for(int i=1; i<=20;i++){

/*Se declaran e
inicializa una variable para ndice
del ciclo for*/

printf("%d\t\t%d\t\t%d\n",i,i*i,i*i*i);

/*Se despliega en pantalla los


resultados de las operaciones*/

getch();

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 32

Portafolio de evidencias PIC I


4.6.1 Sueldos e incentivos
Una empresa paga a sus empleados de acuerdo a su categora. Adems si un empleado
tiene 60 o ms aos recibe un bono del 5%. Los sueldos por categora se muestran
en la siguiente tabla:
Categora

Sueldo

$7,000

$7,800

$8,500

$9,000

Haga un programa que lea la categora y edad del empleado y determine el monto de
su sueldo.
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

int main(){

int categoria, anios;

/*Definicin de variables*/

printf("Ingrese su categora: ");

/*Impresin en
pantalla y lectura de datos*/

scanf("%d", &categoria);

printf("Ingrese sus aos de antiguedad: ");

/*Impresin en
pantalla y lectura de datos*/

scanf("%d",&anios);

if(anios<60){
switch(categoria){

/*Sentencia switch para multiopcionales*/

case 1: printf("Su sueldo es de $ 7000" );break;


Universidad Politcnica de San Luis Potos

Pgina 33

Portafolio de evidencias PIC I


case 2: printf("Su sueldo es de $ 7800" );break;
case 3: printf("Su sueldo es de $ 8500" );break;
case 4: printf("Su sueldo es de $ 9000" );break;
default: printf("Categoria no valida");
}
}
else{

/*Sentencia switch para multiopcionales*/

switch(categoria){
case 1: printf("Su sueldo es de $ 7350" );break;
case 2: printf("Su sueldo es de $ 8190" );break;
case 3: printf("Su sueldo es de $ 8925" );break;
case 4: printf("Su sueldo es de $ 9450" );break;
default: printf("Categoria no valida");
}
}

getch();

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 34

Portafolio de evidencias PIC I


4.5.6 Cajero automtico
Un cajero automtico dispone de billetes de 500, 200, 100, 50 y 20. Desarrolle un
programa que lea una cantidad y exhiba el nmero de billetes de cada denominacin
para entregar ese importe.
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

main(){
int quinientos, doscientos, cien, cincuenta, veinte, cantidad; /*Definicin de
variables*/

printf("Indicar la cantidad de dinero a retirar: "); /*Impresin en


pantalla y lectura de
datos*/

scanf("%d", &cantidad);

veinte=((((cantidad%500)%200)%100)%50)/20; /*Asignacin de valores a variables*/


cincuenta=(((cantidad%500)%200)%100)/50;
cien=((cantidad%500)%200)/100;
doscientos=(cantidad%500)/200;
quinientos=cantidad/500;

if((veinte%20)!=0)

/*Condicionales if para validacin de datos*/

printf("No se cuenta con la denominacin para entregar la


cantidad completa pues sobran $%d", veinte);
if((((cantidad%500)%200)%100)==60)
cincuenta=0;
veinte=3;
;
if((((cantidad%500)%200)%100)==80)
cincuenta=0;
veinte=4;
Universidad Politcnica de San Luis Potos

Pgina 35

Portafolio de evidencias PIC I

printf("Se le entregar su dinero en: \n");

/*Se despliega en pantalla el


resultado*/

printf("%d billetes de $500\n", quinientos);


printf("%d billetes de $200\n", doscientos);
printf("%d billetes de $100\n", cien);
printf("%d billetes de $50\n", cincuenta);
printf("%d billetes de $20\n", veinte);

getch();

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 36

Portafolio de evidencias PIC I


4.4.6 Tipos de curva
Dada la ecuacin de una cnica Ax2 + Bxy + Cy2 + Dx + Ey + F = 0 el discriminante
permite saber de qu tipo de cnica se trata de acuerdo con la siguiente tabla:

Donde discr = B*B4*A*C y N es el trmino cuadrtico (B2 4AC)x2+2(BE2CD)x+E2


4CF. Escriba un programa que dados los coeficientes A, B, C, D, E y F determine
de qu tipo de cnica se trata. Utilice condiciones compuestas.
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

main(){
float a,b,c,d,e,f, discr,n;

/*Definicin de variables*/

printf("Indicar el coeficiente para x2: ");

/*Impresin en pantalla y lectura


de datos*/

scanf("%f", &a);
printf("Indicar el coeficiente para xy: ");
scanf("%f", &b);
printf("Indicar el coeficiente para y2: ");
scanf("%f", &c);
printf("Indicar el coeficiente para x: ");
scanf("%f", &d);
printf("Indicar el coeficiente para y: ");
scanf("%f", &e);
printf("Indicar la constante: ");
Universidad Politcnica de San Luis Potos

Pgina 37

Portafolio de evidencias PIC I


scanf("%f", &f);

discr=b*b-4*a*c;

/*Asignacin de valor a la variable*/

if(discr < 0)

/*Validacin de datos mediante condicional if*/

printf("La ecuacion describe una elipse");


if(discr == 0)
printf("La ecuacion describe una parabola");
if(discr > 0)
printf("La ecuacion describe una hiperbola");

getch();

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 38

Portafolio de evidencias PIC I


4.3.5 Elecciones de candidatos
En una eleccin el candidato que obtiene ms votos que la suma de votos de los
dems gana la eleccin, sino se hace una segunda ronda de elecciones. Desarrolle
un algoritmo que lea el nmero de votos de una eleccin entre 4 candidatos y
determine si habr o no una segunda vuelta.
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

main(){
int can1, can2, can3, can4, suma ;

/*Definicin de variables*/

printf("Introducir cantidad de votos para el Candidato 1: ");

/*Impresin en
pantalla y
lectura de
datos*/

scanf("%d",&can1);
printf("Introducir cantidad de votos para el Candidato 2: ");
scanf("%d",&can2);
printf("Introducir cantidad de votos para el Candidato 3: ");
scanf("%d",&can3);
printf("Introducir cantidad de votos para el Candidato 4: ");
scanf("%d",&can4);

if(can1>(can2+can3+can4))

/*Validacin de datos mediante condicional if-else*/

printf("El ganador de la eleccion es el candidato 1");


else
{
if(can2>(can1+can4+can3))
printf("El ganador de la eleccion es el candidato
2");
else
{
if(can3>(can1+can2+can4))
Universidad Politcnica de San Luis Potos

Pgina 39

Portafolio de evidencias PIC I


printf("El ganador de la
eleccion es el candidato 3");
else
{
if(can4>(can1+can2+can3))
printf("El candidato ganador es el candidato 4");
else
printf("Se har otra ronda de elecciones");
}
}
}
getch();

/*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 40

Portafolio de evidencias PIC I


3.6.8 Lectura de datos
La aceleracin de dos cuerpos de masa m1 y m2, unidos por una cuerda en un plano
inclinado como se muestra en la figura, est dada por la frmula:

Donde g es la aceleracin de la gravedad (9.8 m/s2). Escriba un programa que lea


los valores de las masas m1 y m2 y el ngulo q (en grados) del plano inclinado y
calcule la aceleracin de los cuerpos.
#include <stdio.h> /*biblioteca para entrada y salida*/
#include <conio.h> /*biblioteca para la funcin getch*/
#include <math.h> /*biblioteca para funciones matemticas*/

int main(){

float ang, m1, m2; /*Declaracin de variables de entrada*/


float PI=3.14163264, g=9.81; /*Declaracin de constantes*/
float a; /*Declaracin de variables de salida*/
printf("Ingrese el ngulo [grados] de inclinacion del plano: "); /*Solicitud
de ingreso de datos*/
scanf("%f", &ang); /*Lectura de datos de entrada*/
printf("Ingrese el valor de la masa [kg] del cuerpo que se desplaza por el
plano: "); /*Solicitud de ingreso de datos*/
scanf("%f", &m1); /*Lectura de datos de entrada*/
printf("Ingrese el valor de la masa [kg] del cuerpo que se desplaza
verticalmente: "); /*Solicitud de ingreso de datos*/
scanf("%f", &m2); /*Lectura de datos de entrada*/

Universidad Politcnica de San Luis Potos

Pgina 41

Portafolio de evidencias PIC I


ang= ang*PI/180; /*Se hace la conversin de grados a radianes*/

a=g*(m2*sin(ang)-m1)/(m1+m2); /*Se calcula el resultado*/

printf("El valor de la aceleracin de los cuerpos es de %f m/s^2", a); /*Se


muestra el resultado*/
getch();
return 0; /*terminacin normal del programa*/
} /*fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 42

Portafolio de evidencias PIC I


3.5.2 Horas, minutos y segundos
Escriba un programa que lea un nmero entero representando segundos y despliegue
el equivalente en das, horas, minutos y segundos. Por ejemplo: 34,622 segundos
es equivalente a 0 das, 9 horas, 37 minutos, 2 segundos.
#include <stdio.h> /*biblioteca para entrada y salida*/
#include <conio.h> /*biblioteca para la funcin getch*/

int main(){
int dias, horas, minutos, segundos ; /*Se declaran las variables de tipo entero*/
printf("Introduzca el numero de segundos: "); /*Solicitud de datos de entrada*/
scanf("%d",&segundos); /*Lectura de datos de entrada*/
dias= segundos/86400; /*Se calculan los das*/
horas=(segundos%86400)/3600; /*Se calculan las horas*/
minutos=(segundos%3600)/60; /*Se calculan los minutos*/
segundos=(segundos%3600)%60; /*Se calculan los segundos*/
printf("\nEquivale a %d dias, %d horas, %d minutos y %d segundos", dias, horas,
minutos, segundos); /*Se muestra el resultado calculado*/

getch();
return 0; /*terminacin normal del programa*/
} /*fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 43

Portafolio de evidencias PIC I


3.5.2b Horas, minutos y segundos 2
Escriba un programa que lea un nmero entero representando segundos y despliegue
el equivalente en das, horas, minutos y segundos. Por ejemplo: 34,622 segundos
es equivalente a 0 das, 9 horas, 37 minutos, 2 segundos.
#include<stdio.h>

/*Biblioteca de entrada/salida*/

#include<conio.h>

/*Biblioteca para getchar*/

main(){
int segundos, minutos, horas;

/*Definicin de variables*/

int segundos1, minutos1;

printf("Ingrese la cantidad de segundos:\t ");

/*Impresin en
pantalla y lectura de
datos*/

scanf("%d",&segundos);
printf("Ingrese la cantidad de horas:\t\t ");
scanf("%d",&horas);
printf("Ingrese la cantidad de minutos:\t\t ");
scanf("%d",&minutos);
printf("Ingrese la cantidad de segundos:\t ");
scanf("%d",&segundos1);

segundos=segundos+segundos1;
segundos1= (segundos%3600)%60;

/*Clculos y reasignacin de valores a


variables*/

minutos1= ((segundos%3600)/60 + minutos%60)%60;


horas=

segundos/3600 + minutos/60 + minutos1/60 + horas;

printf("\nLa cantidad total de tiempo es %d H %d M %d S", horas, minutos1,


segundos1);
getch();

/*Fin del programa*/

}
Universidad Politcnica de San Luis Potos

Pgina 44

Portafolio de evidencias PIC I


3.5.1 Fuerza entre dos cargas elctricas
Escriba un programa para calcular la magnitud de la fuerza entre dos cargas
elctricas dadas las coordenadas de las cargas y la magnitud de cada carga. La
fuerza se calcula con la expresin siguiente donde k = 8.99 x10 9.

Donde q1 y q2 son los valores de las cargas 8positivas o negativas), (x1, y1) y
(x2, y2) son las coordenadas de q1 y q2 respectivamente. Deber leer los valores
de: x1, y1, x2, y2, q1 y q2.
#include <stdio.h> /*biblioteca para entrada y salida*/
#include <conio.h> /*biblioteca para la funcin getch*/
int main() {
float q1, q2, x1, x2, y1, y2, k, F;
k=8.99e9;

printf("Ingrese la magnitud de la carga 1: "); /*Solicitud de ingreso de


datos*/
scanf("%f",&q1); /*Lectura de datos de entrada*/
printf("Ingrese la magnitud de la carga 2: "); /*Solicitud de ingreso de
datos*/
scanf("%f",&q2); /*Lectura de datos de entrada*/
printf("Ingrese la coordenada x de la carga 1: "); /*Solicitud de ingreso de
datos*/
scanf("%f",&x1); /*Lectura de datos de entrada*/
printf("Ingrese la coordenada y de la carga 1: "); /*Solicitud de ingreso de
datos*/
scanf("%f",&y1); /*Lectura de datos de entrada*/
printf("Ingrese la coordenada x de la carga 2: "); /*Solicitud de ingreso de
datos*/
scanf("%f",&x2); /*Lectura de datos de entrada*/
printf("Ingrese la coordenada y de la carga 2: "); /*Solicitud de ingreso de
datos*/
scanf("%f",&y2); /*Lectura de datos de entrada*/

Universidad Politcnica de San Luis Potos

Pgina 45

Portafolio de evidencias PIC I


F= q1*q2*k/((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); /*Clculo del resultado*/
printf("La fuerza entre las dos cargas es: %e\n", F); /*Se muestra el
resultado*/

getch();
} /*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 46

Portafolio de evidencias PIC I


3.4.3 Volumen y rea de un cilindro
Escriba un programa que calcule el rea y el volumen de un cilindro de radio 3.3
unidades y altura 2.5 unidades.
#include <stdio.h> /*biblioteca para entrada y salida*/
#include <conio.h> /*biblioteca para la funcin getch*/
int main() {
float radio, altura, area, volumen; /*Se declaran variables de tipo float*/
radio=3.3; /*Se asignan valores a las variables*/
altura=2.5; /*Se asignan valores a las variables*/
area=9; /*Se asignan valores a las variables*/
volumen=3.14163264*radio*radio*altura; /*Se calcula el resultado*/
area=2*3.14163264*radio*altura+3.14163264*radio*radio; /*Se calcula el
resultado*/

printf("El valor del radio del cilindro es %f\n", radio); /*Se muestra en
pantalla el valor asignado a las variables*/
printf("El valor de la altura del cilindro es %f\n", altura); /*Se muestra en
pantalla el valor asignado a las variables*/
printf("El valor del volumen es %f\n", volumen); /*Se muestra en pantalla el
valor del primer resultado*/
printf("El valor del area es %f\n", area); /*Se muestra en pantalla el valor
del primer resultado*/
getch();
} /*Fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 47

Portafolio de evidencias PIC I


3.4.2.b Operaciones con variables asignadas
Escriba las siguientes expresiones algebraicas en C utilizando un mnimo de
parntesis.
#include <stdio.h> /*biblioteca para entrada y salida*/
#include <conio.h> /*biblioteca para la funcin getch*/
int main() {
float a, b, c, d; /* Se declaran las variables de tipo float*/
a=2; /*Se asignan valores a las variables*/
b=3; /*Se asignan valores a las variables*/
c=4; /*Se asignan valores a las variables*/
d= (3*a-4*b)*(5*a-3)/(2*c*(b-1)); /*Se asignan valores a las variables en
funcin de otras*/
printf("El valor de a es %f\n", a); /*sentencia de salida llamando a una
variable mediante %f en este caso*/
printf("El valor de b es %f\n", b); /*sentencia de salida llamando a una
variable mediante %f en este caso*/
printf("El valor de c es %f\n", c); /*sentencia de salida llamando a una
variable mediante %f en este caso*/
printf("La operacion (3a-4b)(5a-3)/(2c(b-1) da como resultado %f\n", d);
/*sentencia de salida llamando a una variable mediante %f en este caso*/
getch();
} /*fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 48

Portafolio de evidencias PIC I


3.1.4 Sentencias de salida y uso de tabulador
Escriba una sola sentencia printf que despliegue las siguientes lneas. Utilice
secuencias de escape para tabuladores y alimentos de lnea.
a)
Equipo
Cruz Azul

jj
5

Guadalajara

jg
2

je
1

jp
6

pts
7

14

#include <stdio.h> /*biblioteca para entrada y salida*/


#include <conio.h> /*biblioteca para la funcin getch*/
int main() {
printf("Equipo \t\tjj \tjg \tje \tjp \tpts\n"); /*sentencia de salida se usa
\t como tabulador y \n como enter*/
printf("Cruz Azul \t5 \t2 \t1 \t6 \t7\n"); /*sentencia de salida se usa \t
como tabulador y \n como enter*/
printf("Guadalajara \t6 \t4 \t2 \t0 \t14\n"); /*sentencia de salida se usa \t
como tabulador y \n como enter*/
getch();
return 0;/*terminacin normal del programa*/
} /*fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 49

Portafolio de evidencias PIC I


3.1.2 Sentencias de salida
Escriba un programa que muestre la siguiente salida utilizando cuatro sentencias
printf, todas con cadenas no vacas.
#include <stdio.h> /*biblioteca para entrada y salida*/
#include <conio.h> /*biblioteca para la funcin getch*/
int main() {
printf("Lenguaje de "); /*sentencia de salida*/
printf("programacion C. "); /*sentencia de salida*/
printf("Primer curso de "); /*sentencia de salida*/
printf("Programacion.\n"); /*sentencia de salida*/
getch();
return 0; /*terminacin normal del programa*/
} /*fin del programa*/

Universidad Politcnica de San Luis Potos

Pgina 50

Portafolio de evidencias PIC I


Ejemplos
Volumen y rea de una esfera
El programa calcula el volumen y rea
asignados

de una esfera con datos previamente

#include <stdio.h>
#include <conio.h>
/*calcula el rea y el volumen de una esfera*/
int main(){

float r,area,volumen;/*radio, rea y volumen de la esfera*/


r = 4.5;
area = 4*3.1416*r*r;
volumen = 4*3.1416*r*r*r/3;
printf("el radio de la esfera es %f\n",r);
printf("el rea de la esfera es %f\n",area);
printf("el volumen de la esfera es %f\n",volumen);
getch();
return 0;
}

Universidad Politcnica de San Luis Potos

Pgina 51

Portafolio de evidencias PIC I


Men de opciones
El programa permite al usuario elegir dos opciones de instruccin, esto se hace
mediante operadores lgicos.
#include <stdio.h>
#include <conio.h>
main(){
float tempOriginal,tempConvertida;
int opcion;
printf("Teclee temperatura: ");
scanf("%f",&tempOriginal);
printf("Tipo de conversin (1 - C a F, 2 - F a C, 3 - C a K): ");
scanf("%d",&opcion); //solicita tipo de conversin
tempConvertida = (opcion==1)*(9*tempOriginal/5+32)+
(opcion==2)*(5.0/9*(tempOriginal-32))+(opcion==3)*(tempOriginal+273.16);
printf("Valor convertido: %f\n",tempConvertida);
getch();
}

Universidad Politcnica de San Luis Potos

Pgina 52

Portafolio de evidencias PIC I


Lectura de datos
El siguiente programa permite que el usuario introduzca valores que son asignados
a variables y posteriormente se realizan clculos matemticos con stas.
#include <stdio.h>
#include <conio.h>
int main(){
int divisor, dividendo, cociente;
printf("Teclee el divisor: ");/*informa que se va a leer*/
scanf("%d",&divisor); /*Lee El divisor */
printf("Teclee el dividendo: ");
scanf("%d",&dividendo); /*Lee el dividendo*/
cociente = dividendo / divisor;
printf("dividendo: %d\n",dividendo);
printf("divisor: %d\n",divisor);
printf("cociente: %d\n",cociente);
getch();
return 0;
}

Universidad Politcnica de San Luis Potos

Pgina 53

Portafolio de evidencias PIC I


Condicional if
En el siguiente ejemplo se ilustra cmo mediante el condicional if y operadores
lgicos se puede determinar si un nmero es positivo o negativo.
#include <stdio.h>
#include <conio.h>
main(){
float numero;
printf("Teclee un numero: ");
scanf("%f",&numero);
if(numero>=0)
printf("Numero positivo\n");
else
printf("Numero negativo\n");
getch();
}

Universidad Politcnica de San Luis Potos

Pgina 54

Portafolio de evidencias PIC I


Asignaciones 1
En el ejemplo se realiza la operacin fundamental con variables que es la
asignacin, despus se usan estas variables para hacer una divisin.
#include <stdio.h> /*biblioteca para entrada y salida*/
#include <conio.h> /*biblioteca para la funcin getch*/
int main() { /*aqu inicia el programa */
int divisor, dividendo;
float cociente;
divisor=13;
dividendo=45;
cociente= dividendo / divisor;

printf("Dividendo: %d\n", dividendo); /*sentencia de salida*/


printf("Divisor: %d\n" , divisor); /*sentencia de salida*/
printf("Cociente: %f\n", cociente); /*sentencia de salida*/
getch();
return 0; /*terminacin normal del programa*/
}

Universidad Politcnica de San Luis Potos

Pgina 55

Portafolio de evidencias PIC I


Asignaciones 2
En el ejemplo se realiza la operacin fundamental con variables que es la
asignacin, despus mediante funciones de entrada y salida se muestran sus
valores en la pantalla.
/*Ejemplo de asignaciones*/
#include <stdio.h>
#include <conio.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;
a = 1e10*x;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
printf("x=%f\ny=%f\nz=%f\n",x,y,z);
getch();
return 0;
}

Conclusin
A lo largo de este primer parcial aprendimos aspectos generales sobre la
programacin, consideramos que la manera en que analizamos los problemas se
volvi ms minuciosa, ya que el disear un algoritmo como fase previa al
desarrollo de un programa, requiere poner atencin en todos los detalles para no
dar lugares a ambigedades en el cdigo.
El conocimiento obtenido en este mes fue y ser de gran provecho para futuros
proyectos, adems de haber servido como prembulo para el desarrollo de
prototipos fsicos con el uso de la placa de prototipado Arduino.
Universidad Politcnica de San Luis Potos

Pgina 56

También podría gustarte