Guia 1 - Programacion en C en Linux.desbloqueado.pdf

download Guia 1 - Programacion en C en Linux.desbloqueado.pdf

of 15

Transcript of Guia 1 - Programacion en C en Linux.desbloqueado.pdf

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    1/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 1

    GUIA DE LABORATORIO

    I. TEMA : PROGRAMACION EN EL LENGUAJE C EN LINUX

    II. OBJETIVOS

    El estudiante, al finalizar la prctica:

    a. Identifica las estructuras de control bsicas del lenguaje de programacin C.

    b. Utiliza el lenguaje de programacin C, para escribir programas en el sistema operativo Linux.

    III. TRABAJO PREPARATORIO

    Para la conclusin satisfactoria de la presente gua de trabajo, el estudiante previamente debe:

    a. Conocer a un nivel bsico el sistema operativo Linux

    b. Conocer los conceptos fundamentales de la operacin de las redes de computadores.

    IV. MATERIALES

    Para la realizacin del presente trabajo de laboratorio, el estudiante debe contar con:

    a. Un computador con el sistema operativo Linux.

    b. Herramientas para el desarrollo de programas en el lenguaje de programacin C.c. Manual del lenguaje de programacin C.

    V. MARCO TEORICO

    LENGUAJE DE PROGRAMACION C

    El lenguaje de programacin C, es un lenguaje de alto nivel, de uso muy extendido en el campo de

    la programacin de sistemas.

    Originalmente creado en los laboratorios de Bell, se utiliz para escribir el sistema operativo Unix,

    como una alternativa al hasta entonces lenguaje de programacin ensamblador, que era el utilizado paraescribir este tipo de aplicaciones.

    Con el tiempo, el lenguaje de programacin C se estandariz y esto ha permitido que el cdigo

    desarrollado en C pueda ser portado de una arquitectura y plataforma a otra sin mayores cambios, por

    ejemplo, un programa escrito en C para el sistema operativo Windows puede ser ejecutado en el sistema

    operativo Linux siempre que no se utilicen libreras especficas de la plataforma Windows y recompilando el

    cdigo fuente por la diferencia de formatos de archivos que manejan ambos sistemas operativos y por las

    diferencias en las llamadas al sistema que podran existir.

    PALABRAS RESERVADAS DEL LENGUAJE DE PROGRAMACION C

    El siguiente listado muestra las palabras reservadas del lenguaje de programacin C (ANSI C89):

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    2/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 2

    auto double int struct

    break else long switchcase enum register typedef

    char extern return union

    const float short unsigned

    continue for signed void

    default goto sizeof volatile

    do if static while

    Como puede notarse, las palabras reservadas son similares a las utilizadas en lenguajes de

    programacin como Java, C++ y C#.

    Esto se debe a que C++ es una extensin de C con soporte para la programacin orientada aobjetos, mientras que Java se cre como un lenguaje alternativo a C y C++, pero con una sintaxis que

    permitiera a los programadores una transicin sencilla. Java, adems permite que una aplicacin escrita en

    dicho lenguaje se ejecute en una plataforma u otra sin necesidad de ningn cambio ni re compilacin. Para

    lograr esto, java implementa una mquina virtual (la JVM Java Virtual Machine) que ofrece la misma

    interfaz a las aplicaciones independientemente de la plataforma subyacente.

    C#, un lenguaje de programacin moderno y promovido como el lenguaje de desarrollo preferido

    de Microsoft. Tambin mantiene la sintaxis de C, por las razones que Java lo hizo: garantizar una curva de

    aprendizaje suave a la gran base de programadores en C, C++ y Java.

    Como Java, C# utiliza una mquina virtual para la ejecucin de los programas. Sin embargo la

    mquina virtual de C# solo se ha implementado para la plataforma Windows de manera oficial; en tantoque para plataformas como Linux solo existen implementaciones parciales, siendo la ms utilizada la

    implementada dentro del proyecto mono.

    El hecho que los programas escritos en Java o C# requieran de una mquina virtual, impone

    limitaciones en la velocidad de ejecucin de los programas, mientras que los programas escritos en C, al ser

    compilados, se ejecutan ms eficientemente y son preferibles cuando se escriben programas de sistema o

    se requiere de programas ligeros y veloces.

    ESTRUCTURAS DE CONTROL ESTRUCTURAS DE BIFURCACION

    Permite la ejecucin condicional y excluyente de uno de dos grupos de instrucciones. Si CONDICION

    es verdadero, entonces se ejecutar el grupo Instrucciones_V; si CONDICION es falso, se ejecutar elgrupo Instrucciones_F.

    if (CONDICION){ // condicion = Verdadero

    Instrucciones_V;

    }

    else

    { // CONDICION = Falso

    Instrucciones_F;

    }

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    3/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 3

    Ejemplo:

    int nota;

    if (nota > 10)

    { // La nota es mayor a diez

    printf("La nota es aprobatoria");

    }

    else

    { // La nota es menor o igual a diez : nota

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    4/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 4

    break;

    default:

    printf("La variable opcion es igual a 4");break;

    }

    ESTRUCTURAS ITERATIVAS

    ESTRUCTURA WHILE

    Mientras CONDICION sea verdadero, se ejecutarn las instrucciones parte del cuerpo del bucle.

    Por ejemplo, en el siguiente programa, la instruccin printf() se ejecutar 1000 veces, puesto que

    la variable cnt, inicialmente de valor 0 se incrementar en uno en cada iteracin y solo despus de 1000

    incrementos, tomar un valor igual o mayor a 1000. En ese momento, la condicin verificada en el bucle

    (cnt < 100) ser falsa y por lo tanto se omitirn las instrucciones del cuerpo del bucle y se ejecutarnaquellas que estn despus del mismo.

    Ejemplo:

    int cnt=0;

    while (cnt < 1000)

    { //cnt < 1000

    printf("El valor de cnt es: %d\n",cnt);

    cnt++;

    }//cnt >= 1000

    ESTRUCTURA DO WHILE

    El cuerpo del bucle se ejecuta por lo menos una vez (la primera vez) y luego se vuelve a ejecutar,

    siempre que CONDICION sea verdadera, en caso contrario, se contina la ejecucin del programa, desde la

    instruccin inmediatamente despus del bucle.

    do

    { //cuerpo del bucle

    Instrucciones;

    } while(CONDICION);

    while (CONDICION)

    { //CONDICION = verdadero

    //cuerpo del bucle

    Instrucciones;

    }

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    5/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 5

    Por ejemplo, en el siguiente programa, la instruccin printf() se ejecutar 50 veces, puesto que la

    variable nroEntradas, inicialmente de valor 50 se decrementar en uno en cada iteracin y solo despus de

    50 iteraciones, tomar un valor igual o menor a 50. En ese momento, la condicin verificada en el while

    (nroEntrada > 0) ser falsa y por lo tanto se continuar la ejecucin del programa, desde la instruccin que

    sigue a la sentencia while.

    Ejemplo:

    int nroEntrada=50;

    do

    {

    printf("%d\n",nroEntrada);

    nroEntrada--;

    } while(nroEntrada>0);//nroEntrada

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    6/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 6

    Para las tareas del curso, es suficiente utilizar el compilador desde la lnea de comandos, sin

    embargo, se puede utilizar tambin un IDE como KDevelop, Eclipse u otros disponibles para la plataforma

    Linux

    Comenzaremos creando, compilando y ejecutando nuestro primer programa en C para Linux. Para

    el caso escribiremos el programa ms famoso de todos; aquel que muestra el mensaje Hola mundo.

    Los pasos que se deben seguir para tal propsito son:

    1. Escribir en un editor de texto cualquiera (por ejemplo el gedit o kate) el siguiente cdigo:

    #include

    int main(){

    printf(Hola Mundo\n);

    }

    2. Guardamos el programa con el nombre holaMundo.c

    3. Para compilar el programa holaMundo.c, en la lnea de comandos ejecutamos la

    sentencia

    gcco holaMundo holaMundo.c

    Si omitimos el modificador o, el programa resultante de la compilacin se llamar por defecto

    a.out.

    4. Para ejecutar el programa, desde la consola escribimos:

    ./holaMundo

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    7/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 7

    5. Como resultado, se debe mostrar por consola el mensaje

    Hola Mundo

    OBTENCION DE AYUDA

    Para obtener ayuda sobre algn programa o sentencia utilizamos la orden man utilizando la

    siguiente sintaxis:

    man

    Por ejemplo, para obtener ayuda sobre el compilador gcc, la orden sera:

    man gcc

    Esta orden nos mostrar por pantalla la ayuda del gcc; la cual debe ser similar a la siguiente:

    GCC(1) GNU GCC(1)

    NAME

    gcc - GNU project C and C++ compiler

    SYNOPSIS

    gcc [-c|-S|-E] [-std=standard]

    [-g] [-pg] [-Olevel]

    [-Wwarn...] [-Wpedantic]

    [-Idir...] [-Ldir...]

    [-Dmacro[=defn]...] [-Umacro]

    [-foption...] [-mmachine-option...]

    [-o outfile] [@file] infile...

    Only the most useful options are listed here; see below for the

    remainder. g++ accepts mostly the same options as gcc.

    DESCRIPTION

    When you invoke GCC, it normally does preprocessing, compilation,

    assembly and linking. The "overall options" allow you to stop this

    process at an intermediate stage. For example, the -c option says not

    to run the linker. Then the output consists of object files output by

    the assembler.

    Other options are passed on to one stage of processing. Some options

    control the preprocessor and others the compiler itself. Yet other

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    8/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 8

    options control the assembler and linker; most of these are not

    documented here, since you rarely need to use any of them.

    Most of the command-line options that you can use with GCC are useful

    for C programs; when an option is only useful with another language

    (usually C++), the explanation says so explicitly. If the description

    for a particular option does not mention a source language, you can use

    that option with all supported languages.

    The gcc program accepts options and file names as operands. Many

    options have multi-letter names; therefore multiple single-letter

    options may not be grouped: -dv is very different from -d -v.

    You can mix options and other arguments. For the most part, the order

    you use doesn't matter. Order does matter when you use several options

    of the same kind; for example, if you specify -L more than once, the

    directories are searched in the order specified. Also, the placement

    of the -l option is significant.

    Many options have long names starting with -f or with -W---for example,

    -fmove-loop-invariants, -Wformat and so on. Most of these have both

    positive and negative forms; the negative form of -ffoo is -fno-foo.

    This manual documents only one of these two forms, whichever one is not

    the default.

    OPTIONS

    Option Summary

    Here is a summary of all the options, grouped by type. Explanations

    are in the following sections.

    Overall Options

    -c -S -E -o file -no-canonical-prefixes -pipe -pass-exit-codes

    -x language -v -### --help[=class[,...]] --target-help

    --version -wrapper @file -fplugin=file -fplugin-arg-name=arg

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    9/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 9

    -fdump-ada-spec[-slim] -fada-spec-parent=unit -fdump-go-spec=file

    C Language Options

    -ansi -std=standard -fgnu89-inline -aux-info filename

    -fallow-parameterless-variadic-functions -fno-asm -fno-builtin

    -fno-builtin-function -fhosted -ffreestanding -fopenmp

    -fms-extensions -fplan9-extensions -trigraphs -traditional

    -traditional-cpp -fallow-single-precision -fcond-mismatch

    -flax-vector-conversions -fsigned-bitfields -fsigned-char

    -funsigned-bitfields -funsigned-char

    C++ Language Options

    -fabi-version=n -fno-access-control -fcheck-new

    -fconstexpr-depth=n -ffriend-injection -fno-elide-constructors

    -fno-enforce-eh-specs -ffor-scope -fno-for-scope

    -fno-gnu-keywords -fno-implicit-templates

    -fno-implicit-inline-templates -fno-implement-inlines

    -fms-extensions -fno-nonansi-builtins -fnothrow-opt

    -fno-operator-names -fno-optional-diags -fpermissive

    Al recorrer el archivo de ayuda, utilizamos la barra espaciadora para leer la siguiente pgina, la

    tecla Enter para leer la siguiente lnea, y la tecla q para salir de la ayuda.

    VI. DESARROLLO DE LA PRACTICA

    1) Escriba un programa que calcule el cuadrado de un numero ingresado por el usuario a travs del

    teclado

    Solucin:

    // Nombre : Cuadrado de un numero

    // Descripcion : Calcular el cuadrado de un numero

    #include

    main () {

    // declarar variablesint numero;

    float resultado;

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    10/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 10

    // indicar que hace el programa

    puts("----- ESTE PROGRAMA CALCULA EL CUADRADO DE UN NUMERO. -----");

    // leer los datos

    printf("Ingrese un numero: ");

    scanf("%d", &numero);

    // calcular el cuadrado del numero

    resultado = numero * numero;

    // Mostrar resultados

    printf("El cuadrado de %d es %f\n", numero, resultado);}

    2) Escriba un programa que lea N nmeros del teclado y muestre el promedio de estos

    Solucin:

    // Nombre : Promedio de N numeros// Descripcion : Calcular el promedio de N numeros

    #include

    main () {

    // variables

    float numero = 0;

    float acumulador = 0;

    int contador = 0;

    float promedio = 0;

    // indicar que hace el programa

    puts("----- ESTE PROGRAMA CALCULA EL PROMEDIO DE N NUMEROS. -----");

    // leer los datos

    while (numero >= 0) {

    printf("Ingrese un numero (-1 para terminar): ");scanf("%f", &numero);

    if (numero >= 0) {

    acumulador = acumulador + numero;contador++;

    }

    }

    // calcular el promedio

    if (contador != 0) {promedio = acumulador / contador;

    }

    // escribir los resultadosprintf("El promedio de los %d numeros es %f\n", contador, promedio);

    }

    3) Escriba un programa que lea tres segmentos y si estos forman un tringulo, que muestre su rea y

    permetro

    Solucin

    // Nombre : Triangulo.c

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    11/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 11

    // Descripcion : Muestra el rea y permetro de un triangulo

    #include#include

    #include

    int main()

    {

    // variablesint ladoA;

    int ladoB;

    int ladoC;float area;

    float perimetro;

    float sp;

    bool esTriangulo = false;

    // indicar que hace el programa

    puts("----- ESTE PROGRAMA DETERMINA EL AREA Y EL PERIMETRO DE UNA TRIANGULO. -

    ----\n");

    // leer los datosprintf("Ingrese el primer lado: ");

    scanf("%d", &ladoA);

    printf("Ingrese el segundo lado: ");

    scanf("%d", &ladoB);printf("Ingrese el tercer lado: ");

    scanf("%d", &ladoC);

    // procesar y mostrar resultadosif ((ladoA + ladoB > ladoC) && (ladoB + ladoC > ladoA) && (ladoA + ladoC >

    ladoB)) {esTriangulo = true;

    }

    if (esTriangulo) {

    perimetro = ladoA + ladoB + ladoC;

    sp = perimetro / 2;

    area = sqrt(sp*(sp-ladoA)*(sp-ladoB)*(sp-ladoC));

    printf("El area del triangulo es %.2f\n", area);

    printf("El perimetro del triangulo es %6.3f\n", perimetro);

    }

    else {

    printf("Los lados ingresados no forman un tringulo\n");}

    return 0;}

    4) Escriba un programa que muestre los N primeros nmeros perfectos

    Solucin

    // Nombre : Numeros_Perfectos.c// Descripcion : Muestra los N primeros numeros perfectos

    #include

    int main() {

    // variables

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    12/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 12

    int N;

    int i;

    int nroEvaluado = 1;int divisores = 0;

    // indicar que hace el programaputs("----- ESTE PROGRAMA MUESTRA LOS N PRIMEROS NUMEROS PERFECTOS. -----\n");

    // leerlos datosprintf("Ingrese el valor de N: ");

    scanf("%d", &N);

    // obtener los N primeros numeros perfectos

    while ( N > 0 ) {

    divisores=0;

    for (i = 1; i < nroEvaluado; i++) {if (nroEvaluado % i == 0) {

    divisores = divisores + i;

    }

    }

    if (divisores == nroEvaluado) {

    printf("%d\n", nroEvaluado);N--;

    }

    nroEvaluado++;

    }return 0;

    }

    5) Escriba un programa que lea como entrada una fecha (dd/mm/aaaa) y muestre la fecha

    correspondiente al da siguiente

    Solucin

    // Nombre : Dia_Siguiente.c

    // Descripcion : Muestra el da siguiente a la fecha ingresada por el

    usuario

    #include#include

    int main(){

    // variables

    int diaActual; int mesActual; int anioActual;

    int diaSgte;int mesSgte;

    int anioSgte;

    bool fechaValida=true;

    // indicar que hace el programa

    puts("----- ESTE PROGRAMA MUESTRA LA FECHA CORRESPONDIENTE AL DIA SIGUIENTE A

    LA FECHA INGRESADA POR EL USUARIO. -----\n");

    // leer los datosprintf("Ingrese el dia: ");

    scanf("%d", &diaActual);printf("Ingrese el mes (1 - 12): ");

    scanf("%d", &mesActual);

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    13/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 13

    printf("Ingrese el ao (4 digitos): ");

    scanf("%d", &anioActual);

    // procesar y mostrar resultados

    diaSgte = diaActual + 1;

    mesSgte = mesActual;anioSgte = anioActual;

    switch (mesActual){

    case 1: case 3: case 5: case 7: case 8: case 10:

    if (diaActual > 31) {fechaValida = false;

    }

    if (diaActual == 31) {

    diaSgte = 1;mesSgte = mesActual + 1;

    }

    break;

    case 4: case 6: case 9: case 11:

    if (diaActual > 30) {

    fechaValida = false;}

    if (diaActual == 30) {

    diaSgte = 1;

    mesSgte = mesActual + 1;}

    break;

    case 12:

    if (diaActual > 31) {fechaValida = false;

    }if (diaActual == 31) {

    diaSgte = 1;

    mesSgte = 1;

    anioSgte = anioActual + 1;

    }

    break;

    case 2:

    if (anioActual % 4 == 0) {

    if (diaActual > 29) {

    fechaValida = false;

    }if (diaActual == 29) {

    diaSgte = 1;mesSgte = mesActual + 1;

    }

    }

    else {if (diaActual > 28) {

    fechaValida = false;

    }if (diaActual == 28) {

    diaSgte = 1;

    mesSgte = mesActual + 1;

    }

    }break;

    default:

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    14/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 14

    fechaValida = false;

    break;

    }

    // mostrar resultados

    if (fechaValida == true) {printf("La fecha sera %d/%d/%d\n", diaSgte, mesSgte, anioSgte);

    }

    else {printf("Los datos ingresados no son correctos\n");

    }

    return 0;}

    6) Escriba un programa que calcule la suma de los elementos de un arreglo unidimensional de

    tamao N

    Solucion:

    // Nombre : Promedio de N numeros// Descripcion : Calcular el promedio de N numeros

    #include

    main () {

    // variablesfloat numero = 0;

    float acumulador = 0;

    int contador = 0;float promedio = 0;

    // indicar que hace el programa

    puts("----- ESTE PROGRAMA CALCULA EL PROMEDIO DE N NUMEROS. -----");

    // leer los datos

    while (numero >= 0) {printf("Ingrese un numero (-1 para terminar): ");

    scanf("%f", &numero);

    if (numero >= 0) {

    acumulador = acumulador + numero;contador++;

    }}

    // calcular el promedio

    if (contador != 0) {promedio = acumulador / contador;

    }

    // escribir los resultados

    printf("El promedio de los %d numeros es %f\n", contador, promedio);

    }

    VII. EJERCICIOS PROPUESTOS

    1. Escriba un programa que calcule S utilizando bucles (N es ingresado por el usuario):

  • 7/23/2019 Guia 1 - Programacion en C en Linux.desbloqueado.pdf

    15/15

    UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

    FACULTAD DE INGENIERIA

    ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

    SISTEMAS OPERATIVOS

    Docente: Ing. Miguel Angel Arredondo C. Pgina 15

    2. Escriba un programa que determine la sumatoria de los N primeros nmeros pares.

    3. Escriba un programa que determine la sumatoria de los N primeros nmeros impares.

    4. Escriba un programa que determine la suma de los dgitos pares e impares de un nmero entero.

    5. Escriba un programa que mediante el uso de un arreglo permita determinar el mayor de N nmeros.

    6. Escriba un programa que permita ordenar en forma ascendente N nmeros enteros.

    Alcance al docente el cdigo con la solucin de los ejercicios propuestos, cuidando que cada

    programa contenga el encabezado que documente los datos del mismo

    VIII. EVALUACION

    La evaluacin de las actividades realizadas en la presente gua de prctica se har en funcin de la

    siguiente tabla:

    ACTIVIDADSESION 01 SESION 02

    Procedimental Procedimental

    Ejecucin de ejercicios de ejemplo 20 --

    Resolucin del ejercicio propuesto 1 -- 3

    Resolucin del ejercicio propuesto 2 -- 3

    Resolucin del ejercicio propuesto 3 -- 3

    Resolucin del ejercicio propuesto 4 -- 3

    Resolucin del ejercicio propuesto 5 -- 4

    Resolucin del ejercicio propuesto 6 -- 4

    TOTAL 20 20

    IX. BIBLIOGRAFIA

    a. Deitel & Deitel, Como Programar En C/C++. Prentice Hall 2da edicin. c. Hipson, P.

    Advanced C. Sam Publishing. 1992

    b. Joyanes L., Microsoft C/C++ 7. Manual de Bolsillo. Editorial McGraw Hill 1994

    c. Marquez, M. UNIX. Programacin Avanzada. 2da edicin. Editorial Alfaomega 2001.

    d. http://www.tecnun.es/asignaturas/Informat1/ayudainf/aprendainf/AnsiC/leng_c.pdf

    e. http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n_C

    http://www.tecnun.es/asignaturas/Informat1/ayudainf/aprendainf/AnsiC/leng_c.pdfhttp://www.tecnun.es/asignaturas/Informat1/ayudainf/aprendainf/AnsiC/leng_c.pdf