Está en la página 1de 15

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO

FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

GUIA DE LABORATORIO
I.

TEMA

II.

OBJETIVOS

PROGRAMACION EN EL LENGUAJE C EN LINUX

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 para
escribir 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):

Docente: Ing. Miguel Angel Arredondo C.

Pgina 1

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

auto
break
case
char
const
continue
default
do

double
else
enum
extern
float
for
goto
if

int
long
register
return
short
signed
sizeof
static

struct
switch
typedef
union
unsigned
void
volatile
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 a
objetos, 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 tanto
que 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

if (CONDICION)
{ // condicion = Verdadero
Instrucciones_V;
}
else
{ // CONDICION = Falso
Instrucciones_F;
}

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 el
grupo Instrucciones_F.
Docente: Ing. Miguel Angel Arredondo C.

Pgina 2

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

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 <= 10
printf("La nota es desaprobatoria");
}
ESTRUCTURAS DE SELECCIN MULTIPLE
switch (EXPRESION)
{
case literal1:
// EXPRESION == literal1
Instrucciones_1;
break;
case literal2:
// EXPRESION == literal2
Instrucciones_2;
break;
...
default:
// EXPRESION != literal1, literal2, ...
Instrucciones_D;
break;
}
Ejecuta de manera excluyente, un grupo de instrucciones segn EXPRESION sea igual a literal1,
literal2, etc. Si EXPRESION no es igual a ninguno de los literales indicados en las entradas case de esta
estructura, se ejecuta el grupo Instrucciones_D.
Todo grupo de instrucciones debe terminar con la instruccin break.
Ejemplo:
int opcion;
switch (opcion)
{
case 1:
printf("La variable opcion es igual a 1");
break;
case 2:
case 3:
printf("La variable opcion es igual a 2 o 3");
break;
case 4:
printf("La variable opcion es igual a 4");
Docente: Ing. Miguel Angel Arredondo C.

Pgina 3

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

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

ESTRUCTURAS ITERATIVAS
ESTRUCTURA WHILE

while (CONDICION)
{
//CONDICION = verdadero
//cuerpo del bucle
Instrucciones;
}

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 ejecutarn
aquellas 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
do
{ //cuerpo del bucle
Instrucciones;
} while(CONDICION);

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.
Docente: Ing. Miguel Angel Arredondo C.

Pgina 4

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

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 <= 0
ESTRUCTURA FOR
for(EXPRESION1; CONDICION; EXPRESION2)
{
//Cuerpo del bucle
Instrucciones;
}
El cuerpo del bucle se ejecuta mientras no se cumpla CONDICION. En EXPRESION1 normalmente se
asigna valores iniciales a las variables verificadas en CONDICION y en EXPRESION2 se actualiza el valor de
dichas variables.
En el siguiente ejemplo, se inicia la variable entera contador en cero, el cuerpo del bucle se
ejecutar mientras que contador sea menor a 10, adems en cada iteracin, contador se incrementar en
uno
Ejemplo:
int contador;
for(contador = 0;contador < 10; contador++)
{
printf("%d\n",contador);
}
COMPILACION DE PROGRAMAS
En la plataforma Linux, existen varios compiladores para el lenguaje de programacin C, sin
embargo, el ms utilizado es el compilador GCC (GNU C Compiler).
Este es un compilador de cdigo abierto y tiene versiones para diversas plataformas adems de
Linux, tales como BSD, Solaris, OS X e incluso Windows.

Docente: Ing. Miguel Angel Arredondo C.

Pgina 5

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

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 <stdio.h>
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
gcc o holaMundo holaMundo.c
a.out.

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


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

Docente: Ing. Miguel Angel Arredondo C.

Pgina 6

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

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<nombre de programa o sentencia>
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
Docente: Ing. Miguel Angel Arredondo C.

Pgina 7

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

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
Docente: Ing. Miguel Angel Arredondo C.

Pgina 8

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

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

:
:

Cuadrado de un numero
Calcular el cuadrado de un numero

#include<stdio.h>
main () {
// declarar variables
int numero;
float resultado;

Docente: Ing. Miguel Angel Arredondo C.

Pgina 9

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS
// 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
// Descripcion

: Promedio de N numeros
: Calcular el promedio de N numeros

#include<stdio.h>
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 resultados
printf("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

Docente: Ing. Miguel Angel Arredondo C.

Triangulo.c
Pgina 10

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS
// Descripcion

Muestra el rea y permetro de un triangulo

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
int main()
{
// variables
int 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 datos
printf("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 resultados
if ((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
// Descripcion

:
:

Numeros_Perfectos.c
Muestra los N primeros numeros perfectos

#include<stdio.h>
int main() {
// variables
Docente: Ing. Miguel Angel Arredondo C.

Pgina 11

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS
int
int
int
int

N;
i;
nroEvaluado = 1;
divisores = 0;

// indicar que hace el programa


puts("----- ESTE PROGRAMA MUESTRA LOS N PRIMEROS NUMEROS PERFECTOS. -----\n");
// leerlos datos
printf("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
// Descripcion
usuario
#include<stdio.h>
#include<stdbool.h>

:
:

Dia_Siguiente.c
Muestra el da siguiente a la fecha ingresada por el

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 datos
printf("Ingrese el dia: ");
scanf("%d", &diaActual);
printf("Ingrese el mes (1 - 12): ");
scanf("%d", &mesActual);
Docente: Ing. Miguel Angel Arredondo C.

Pgina 12

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS
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:
Docente: Ing. Miguel Angel Arredondo C.

Pgina 13

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS
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
// Descripcion

: Promedio de N numeros
: Calcular el promedio de N numeros

#include<stdio.h>
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;
}

VII.

// escribir los resultados


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

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

Docente: Ing. Miguel Angel Arredondo C.

Pgina 14

UNIVERSIDAD TECNOLOGICA DE LOS ANDES FILIAL CUSCO


FACULTAD DE INGENIERIA

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

SISTEMAS OPERATIVOS

2.
3.
4.
5.
6.

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


Escriba un programa que determine la sumatoria de los N primeros nmeros impares.
Escriba un programa que determine la suma de los dgitos pares e impares de un nmero entero.
Escriba un programa que mediante el uso de un arreglo permita determinar el mayor de N nmeros.
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:
ACTIVIDAD
Ejecucin de ejercicios de ejemplo
Resolucin del ejercicio propuesto 1
Resolucin del ejercicio propuesto 2
Resolucin del ejercicio propuesto 3
Resolucin del ejercicio propuesto 4
Resolucin del ejercicio propuesto 5
Resolucin del ejercicio propuesto 6
TOTAL
IX.

SESION 01
Procedimental
20
------20

SESION 02
Procedimental
-3
3
3
3
4
4
20

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

Docente: Ing. Miguel Angel Arredondo C.

Pgina 15