56
PORTAFOLIO DE EVIDENCIAS PROYECTO INTEGRADOR Y COMPRENSIVO I Integrantes: Adriana Medina Beltrán Alejandro Astrolabio Zavala Ramírez Mauricio López Camacho Grupo: E15-429 Profesor: Gilberto Santillán Tovar Fecha: 19/02/15

Portafolio de Evidencias

Embed Size (px)

DESCRIPTION

Portafolio de evidencias de prácticas de programación

Citation preview

  • 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

    Universidad Politcnica de San Luis Potos Pgina 3

    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

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 4

    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.

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 5

    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.

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 6

    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:

    http://www.definicionabc.com/general/caracteristicas.php

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 7

    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

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 8

    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-compilacin-ejecucin 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 DESCRIPCIN

    assert.h Es proporcionar una definicin de la macro assert, que imprime un

    mensaje de error y aborta el programa

    alloc.h Existen funciones para asignar, liberar memoria, u obtener

    informacin de bloques de memoria.

    ctype.h 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.

    dir.h Esto permite ordenar, crear, modificar, mover y eliminar

    directorios

    errno.h 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. float.h Define los lmites de los tipos de coma flotante limits.h Define los lmites de los diferentes tipos de enteros math.h Contiene las funciones matemticas estndar utilizadas en C y C++ setjmp.h Define el tipo de jmp_buf para algunas funciones. signal.h Contiene funciones de estado.

    http://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)http://es.wikipedia.org/wiki/Organizaci%C3%B3n_Internacional_para_la_Estandarizaci%C3%B3nhttp://es.wikipedia.org/wiki/COBOLhttp://es.wikipedia.org/wiki/Fortranhttp://es.wikipedia.org/wiki/PL/1

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 9

    stdarg.h Define funciones que pueden ser llamadas con diferentes nmeros de

    argumentos, de modo que se pueda escribir f(a) y f(a,b). stdef.h Se definen algunos tipos especiales

    stdio.h Incorporan las funciones de Entrada - Salida E/S estndar, tipos y

    macros

    stlib.h Declara funciones que son tiles para diferentes propsitos, en

    especial de bsqueda y ordenacin.

    string.h Este archivo contiene funciones para manejo de cadenas de

    caracteres. time.h 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 /*biblioteca para entrada y salida*/ #include /*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.

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 10

    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 /*biblioteca para entrada y salida*/ #include /*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 #include 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 #include int main(){

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 11

    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.

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 12

    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 #include 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.

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 13

    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

    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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 14

    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 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

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 15

    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

    #include

    main(){

    float numero;

    printf("Teclee un nmero: ");

    scanf(%d,&numero);

    if(numero>=0)

    printf("nmero positivo\n");

    getch();

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 16

    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

    #include

    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();

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 17

    }

    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

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 18

    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

    #include

    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.

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 19

    #include #include 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 #include main(){ int n = 1; do{ printf(%2d\t%d\n,n,n*n); n++; }while(n

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 20

    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 #include #include 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

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 21

    Prototipo Significado

    int f(int a, float x, float y);

    Funcion f que devuelve un valor entero y tiene como argumentos un valor entero y dos de punto flotante.

    double g(double a, int c);

    Funcion g que devuelve un valor de doble precisin y tiene como

    argumentos un valor de doble precisin y un valor entero.

    short m(int n, char c); Funcion m que devuelve un entero 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 #include /*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.

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 22

    Una representacin grfica es la de la figura siguiente. Tipo nombre[tamao]; El tamao es cualquier constante entera positiva mayor que cero. Ejemplos:

    Arreglo Descripcin

    float m[120]; Declara un arreglo de 120 elementos

    de tipo flotante.

    char c[256]; Declara un arreglo de 256 elementos

    de tipo caractr.

    unsigned char y[1024]; Declara un arreglo de 1024 elementos

    de tipo caractr sin signo.

    int a[23]; 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 #include 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

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 23

    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

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 24

    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 /*Biblioteca de entrada/salida*/

    #include /*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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 25

    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*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 26

    5.7.6 Divisores de un nmero Escriba un programa que encuentre los divisores de un nmero.

    #include /*Biblioteca de entrada/salida*/

    #include /*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*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 27

    5.4.1 Tablero de ajedrez Escriba un programa para dibujar un patrn de tablero de ajedrez de tamao 8:

    #include /*Biblioteca de entrada/salida*/

    #include /*Biblioteca para getchar*/

    main(){

    for(int num=1; num

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 28

    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 /*Biblioteca de entrada/salida*/

    #include /*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); /*Impresin en pantalla y lectura de datos*/

    ancho1=ancho; /*Inicializacin de variables*/

    while(alto>0){ /*Ciclos while anidados*/

    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(" ");

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 29

    }

    ancho1--; /*Alteracin de expresin de condicin para el ciclo*/

    }

    printf("\n");

    ancho1=ancho;

    alto--;

    }

    getch(); /*Fin del programa*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 30

    5.3.7 Promediador Desarrolle un algoritmo para calcular el promedio ponderado de n nmeros:

    #include /*Biblioteca de entrada/salida*/

    #include /*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;

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 31

    printf("El promedio es %f", prom); /*Se despliega en pantalla el resultado*/

    getch(); /*Fin del programa*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 32

    5.3.2 Cuadrados y cubos Disee un algoritmo para imprimir los cuadrados y cubos de los primeros 20 nmeros enteros.

    #include /*Biblioteca de entrada/salida*/

    #include /*Biblioteca para getchar*/

    int main(){

    printf("NUMERO\t\tCUADRADO\tCUBO\n"); /*Se despliegan los encabezados de las columnas/*

    for(int i=1; i

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 33

    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

    1 $7,000

    2 $7,800

    3 $8,500

    4 $9,000

    Haga un programa que lea la categora y edad del empleado y determine el monto de su sueldo.

    #include /*Biblioteca de entrada/salida*/

    #include /*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

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 34

    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*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 35

    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 /*Biblioteca de entrada/salida*/

    #include /*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;

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 36

    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*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 37

    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+E24CF. 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 /*Biblioteca de entrada/salida*/

    #include /*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: ");

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 38

    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*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 39

    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 /*Biblioteca de entrada/salida*/

    #include /*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))

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 40

    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*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 41

    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 /*biblioteca para entrada y salida*/

    #include /*biblioteca para la funcin getch*/

    #include /*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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 42

    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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 43

    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 /*biblioteca para entrada y salida*/

    #include /*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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 44

    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 /*Biblioteca de entrada/salida*/

    #include /*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*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 45

    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 x109.

    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 /*biblioteca para entrada y salida*/

    #include /*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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 46

    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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 47

    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 /*biblioteca para entrada y salida*/

    #include /*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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 48

    3.4.2.b Operaciones con variables asignadas Escriba las siguientes expresiones algebraicas en C utilizando un mnimo de

    parntesis.

    #include /*biblioteca para entrada y salida*/

    #include /*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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 49

    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 jj jg je jp pts

    Cruz Azul 5 2 1 6 7

    Guadalajara 6 4 2 0 14

    #include /*biblioteca para entrada y salida*/

    #include /*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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 50

    3.1.2 Sentencias de salida Escriba un programa que muestre la siguiente salida utilizando cuatro sentencias printf, todas con cadenas no vacas.

    #include /*biblioteca para entrada y salida*/

    #include /*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*/

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 51

    Ejemplos

    Volumen y rea de una esfera El programa calcula el volumen y rea de una esfera con datos previamente asignados

    #include

    #include

    /*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;

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 52

    Men de opciones El programa permite al usuario elegir dos opciones de instruccin, esto se hace mediante operadores lgicos.

    #include

    #include

    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();

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 53

    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

    #include

    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;

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 54

    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

    #include

    main(){

    float numero;

    printf("Teclee un numero: ");

    scanf("%f",&numero);

    if(numero>=0)

    printf("Numero positivo\n");

    else

    printf("Numero negativo\n");

    getch();

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 55

    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 /*biblioteca para entrada y salida*/

    #include /*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*/

    }

  • Portafolio de evidencias PIC I

    Universidad Politcnica de San Luis Potos Pgina 56

    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

    #include

    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.