SlideShare ist ein Scribd-Unternehmen logo
1 von 242
Downloaden Sie, um offline zu lesen
Conceptos,
estructuras
básicas y ejercicios resueltos
dentro de la introducción al
lenguaje C++.

EL ARTE DE PROGRAMAR

DIEGO ROJAS
2013
INDICE:
INTRODUCCION………………………………………………………………………………………………………………………… 3
CAPITULO 1…………………………………………………………………………………………………………………………….. 4-5
CAPITULO2……………………………………………………………………………………………………………………………. 6-7
CAPITULO 3………………………………………………………………………………………………………………………… 8-9
CAPITULO 4…………………………………………………………………………………………………………………………
10
CAPITULO 5…………………………………………………………………………………………………………………………
11
CAPITULO 6………………………………………………………………………………………………………………………… 12-16
CAPITULO 7………………………………………………………………………………………………………………………… 17-18
CAPITULO 8…………………………………………………………………………………………………………………………
19
CAPITULO 9………………………………………………………………………………………………………………………… 20-21
CAPITULO 10………………………………………………………………………………………………………………………… 22-25

EJERCICIOS BASICOS CON LAS SENTENCIAS TRATADAS ANTERIORMENTE
(IF,DO,DO WHILE,FOR)
PROGRAMA N:1……………………………………………………………………………………………………….. 26-28
PROGRAMA N:2……………………………………………………………………………………………………….. 29-30
PROGRAMA N:3……………………………………………………………………………………………………… 31
PROGRAMA N:4…………………………………………………………………………………………………… 32
PROGRAMA N:5………………………………………………………………………………………………………33
PROGRAMA N:6………………………………………………………………………………………………………34-36
PROGRAMA N:7………………………………………………………………………………………………………37-39
PROGRAMA N:8………………………………………………………………………………………………………40-42
PROGRAMA N:9………………………………………………………………………………………………………43-45
PROGRAMA N:10……………………………………………………………………………………………………46-51
PROGRAMA N:11……………………………………………………………………………………………………52-53
PROGRAMA N:12……………………………………………………………………………………………………54-56
PROGRAMA N:13……………………………………………………………………………………………………57
PROGRAMA N:14……………………………………………………………………………………………………58-59
PROGRAMA N:15……………………………………………………………………………………………………60
PROGRAMA N:16……………………………………………………………………………………………………61-62
PROGRAMA N:17……………………………………………………………………………………………………63-65
PROGRAMA N:18……………………………………………………………………………………………………66-68
PROGRAMA N:19……………………………………………………………………………………………………69-70
PROGRAMA N:20……………………………………………………………………………………………………71-73
PROGRAMA N:21……………………………………………………………………………………………………74-75
PROGRAMA N:22……………………………………………………………………………………………………76-78
PROGRAMA N:23……………………………………………………………………………………………………79-81
PROGRAMA N:24……………………………………………………………………………………………………82-87
PROGRAMA N:25……………………………………………………………………………………………………88-95
PROGRAMA N:26……………………………………………………………………………………………………96-102
PROGRAMA N:27……………………………………………………………………………………………………103-107
PROGRAMA N:28…………………………………………………………………………………………………108-109
PROGRAMA N:29………………………………………………………………………………………………110-112
PROGRAMA N:30………………………………………………………………………………………………113-126
PROGRAMA N:31………………………………………………………………………………………………127-131
EJERCICIOS CON VECTORES Y MATRICES:
PROGRAMA N:32………………………………………………………………………………………………1132-134
PROGRAMA N:33………………………………………………………………………………………………135-137
PROGRAMA N:34………………………………………………………………………………………………138-139
PROGRAMA N:35………………………………………………………………………………………………140-147
PROGRAMA N:36………………………………………………………………………………………………148-152
PROGRAMA N:37………………………………………………………………………………………………153-157
PROGRAMA N:38………………………………………………………………………………………………158-160
PROGRAMA N:39………………………………………………………………………………………………161-164
PROGRAMA N:40………………………………………………………………………………………………165-171
PROGRAMA N:41………………………………………………………………………………………………172-175
PROGRAMA N:42………………………………………………………………………………………………175-177
PROGRAMA N:43………………………………………………………………………………………………178-183
PROGRAMA N:44………………………………………………………………………………………………184-186
PROGRAMA N:45………………………………………………………………………………………………187-189
PROGRAMA N:46………………………………………………………………………………………………190-195
PROGRAMA N:47………………………………………………………………………………………………195-201
PROGRAMA N:49………………………………………………………………………………………………201-206
PROGRAMA N:50………………………………………………………………………………………………206-210
PROGRAMA N:51………………………………………………………………………………………………211-214
PROGRAMA N:52………………………………………………………………………………………………215-217
PROGRAMA N:53………………………………………………………………………………………………218-221
PROGRAMA N:55………………………………………………………………………………………………222-226
PROGRAMA N:56………………………………………………………………………………………………226-228
PROGRAMA N:57………………………………………………………………………………………………228-231
PROGRAMA N:58………………………………………………………………………………………………231-233
PROGRAMA N:59………………………………………………………………………………………………233-238
PROGRAMA N:60………………………………………………………………………………………………238-241
LINCOGRAFIA…………………………………………………………………………………………………………………………242
Introducción:
C es un lenguaje de programación de propósito general que ofrece economía sintáctica,
control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje
de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en
ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación
ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador puede
utilizar la totalidad del lenguaje.
Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX, puesto que fueron
desarrollados conjuntamente. Sin embargo, este lenguaje no está ligado a ningún sistema
operativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de programación de
sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de
igual forma se puede desarrollar cualquier tipo de aplicación.
La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken
Thompson en 1970 para el primer sistema UNIX en un DEC PDP-7. Estos son lenguajes
sin tipos, al contrario que el C que proporciona varios tipos de datos. Los tipos que ofrece
son caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden
crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones. El
primer compilador de C fue escrito por Dennis Ritchie para un DEC PDP-11 y escribió el
propio sistema operativo en Introducción al lenguaje C (2).
La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken
Thompson en 1970 para el primer sistema UNIX en un DEC PDP-7. Estos son lenguajes
sin tipos, al contrario que el C que proporciona varios tipos de datos. Los tipos que ofrece
son caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden
crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones.
C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoría
de computadoras actuales, como son los caracteres, números y direcciones. Estos tipos de
datos pueden ser manipulados por las operaciones aritméticas que proporcionan las
computadoras. No proporciona mecanismos para tratar tipos de datos que no sean los
básicos, debiendo ser el programador el que los desarrolle. Esto permite que el código
generado sea muy eficiente y de ahí el éxito que ha tenido como lenguaje de desarrollo de
sistemas. No proporciona otros mecanismos de almacenamiento de datos que no sea el
estático y no proporciona mecanismos de entrada ni salida. Ello permite que el lenguaje sea
reducido y los compiladores de fácil implementación en distintos sistemas. Por contra, estas
carencias se compensan mediante la inclusión de funciones de librería para realizar todas
estas tareas, que normalmente dependen del sistema operativo.
Muchas de las operaciones comunes con el sistema operativo se realizan a través de estas
funciones. Una colección de ficheros de encabezamiento, headers, en los que se definen los
tipos de datos y funciones incluidas en cada librería. Los programas que utilizan estas
bibliotecas para interactuar con el sistema operativo obtendrán un comportamiento
equivalente en otro sistema.
3
Capítulo 1.
Estructura básica de un programa en C.
La mejor forma de aprender un lenguaje es programando con
él. El programa más sencillo que se puede escribir en C es el
siguiente:
main ( )
{
}
Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más
importante de cualquier programa C y además, es el más pequeño que se puede escribir y
que se compile correctamente. En el se define la función main, que es la que ejecuta el
sistema operativo al llamar a un programa C. El nombre de una función C siempre va
seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función está
formada por un bloque de sentencias, que esta encerrado entre llaves {}.
Un programa algo más complicado es el siguiente:
#include <stdio.h>
main ( )
{
printf ("Hola amigos!n");
}
Con el visualizamos el mensaje Hola amigos! en el terminal. En la primera línea indica que
se tengan en cuenta las funciones y tipos definidos en la librería stdio (standard
input/output). Estas definiciones se encuentran en el fichero header stdio.h. Ahora, en la
función main se incluye una única sentencia que llama a la función printf. Esta toma como
argumento una cadena de caracteres, que se imprimen van encerradas entre dobles comillas
" ". El símbolo n indica un cambio de línea.

4
Hay un grupo de símbolos, que son tratados como caracteres individuales, que especifican
Alerta
Espacio atrás
Salto de página
Salto de línea
Retorno de carro
Tabulación horizontal
Tabulación vertical
Barra invertida
Comilla simple
Comillas dobles
Visualiza un carácter cuyo código ASCII es OOO en octal
Visualiza un carácter cuyo código ASCII es HHH en
hexadecimal
algunos caracteres especiales del código ASCII. Los más importantes son:
a
b
f
n
r
t
v

'
"
OOO
xHHH

Un programa C puede estar formado por diferentes módulos o fuentes. Es conveniente
mantener las fuentes de un tamaño no muy grande, para que la compilación sea rápida.
También, al dividirse un programa en partes, puede facilitar la legibilidad del programa y
su estructuración. Las diferentes fuentes son compilados de forma separada, únicamente los
fuentes que han sido modificados desde la última compilación, y después combinados con
las librerías necesarias para formar el programa en su versión ejecutable.

5
Capítulo 2.
Tipos de datos y variables.
Una variable es un espacio de memoria
reservado en el ordenador para contener
valores que pueden cambiar durante la
ejecución de un programa. Los tipos que se
le asignen a estas determinan como se
manipulara la información contenida en
ellas.
Cada variable necesita un identificador que la distingue de las demás. Un identificador
válido es una secuencia de una o más letras, dígitos o guiones bajos, recordando que no
deben coincidir con palabras reservadas del lenguaje, deben comenzar por una letra y
además tomar en cuenta que C++ hace diferencia entre mayúsculas y minúsculas.
Las variables que se pueden presentar en un programa son de los siguientes tipos:
1. Variables Locales. Se definen solo en bloque en el que se vayan a ocupar, de esta
manera evitamos tener variables definidas que luego no se utilizan.
2. Variables Globales. No son lo más recomendable, pues su existencia atenta contra la
comprensión del código y su encapsulamiento.
3. Variables Estáticas. Se tienen que inicializar en el momento en que se declaran, de
manera obligatoria.
Ahora hablemos de los tipos de datos que reconoce C++. Estos definen el modo en que se
usa el espacio (memoria) en los programas. Al especificar un tipo de datos, estamos
indicando al compilador como crear un espacio de almacenamiento en particular, y también
como manipular este espacio. Un tipo de dato define el posible rango de valores que una
variable puede tomar al momento de ejecución del programa y a lo largo de toda la vida útil
del propio programa.
Los tipos de datos pueden ser predefinidos o abstractos. Un tipo de dato predefinido es
intrínsecamente comprendido por el compilador. En contraste, un tipo de datos definido por
el usuario es aquel que usted o cualquier otro programador crea como una clase, que
comúnmente son llamados tipos de datos abstractos.

6
Char

Carácter

(normalmente 8 bits)

Short

Entero corto con
signo

(normalmente 16 bits)

Int

Entero con signo

(depende de la
implementación)

Unsigned Entero sin signo

(depende de la
implementación)

Long

Entero largo con
signo

(normalmente 32 bits)

Float

Flotante simple

(normalmente 32 bits)

Double

Flotante doble

(normalmente 64 bits)

Las variables son definidas utilizando un identificador de tipo seguido del nombre de la
variable. Veamos el siguiente programa:
#include <stdio.h>
main ()
{
float cels, farh;
farh = 35.0;
cels = 5.0 * (farh - 32.0) / 9.0;
printf ("-> %f F son %f Cn", farh, cels);
}

En el programa anterior se definen dos variables float, se asigna un valor a la primera y se
calcula la segunda mediante una expresión aritmética. Las asignaciones en C también son
una expresión, por lo que se pueden utilizar como parte de otra expresión, pero según que
prácticas de este tipo no son muy recomendables ya que reducen la legibilidad del
programa. En la instrucción printf, el símbolo %f indica que se imprime un número en
coma flotante.
Hay un tipo muy importante que se representa por void que puede significar dos cosas
distintas, según su utilización. Puede significar nada, o sea que si una función devuelve un
valor de tipo void no devuelve ningún resultado, o puede significar cualquier cosa, como
puede ser un puntero a void es un puntero genérico a cualquier tipo de dato. Más adelante
veremos su utilización.

7
Capítulo 3.
Estructuras.
Una estructura es un grupo de variables relacionadas de manera lógica, las cuales pueden
ser de diferentes tipos y declaradas en una sola unidad, donde la unidad es la estructura.
¿Para que nos sirve? Las estructuras nos ayudan a agrupar datos de una manera más
ordenada y fácil para nosotros. Por ejemplo, supongamos que queremos guardar el nombre,
la edad y el número de teléfono de un contacto en un programa en C/C++.
Estas son una especie de hıbrido entre las estructuras de C y las clases de C++, de hecho
podrían ser sustituidas por clases definidas ya que disponen de tres tipos de modificadores
de acceso: público, privado y protegido, y el considerarlas como tales, permite un mayor
control de acceso de las estructuras.
En C++ se forma una estructura utilizando la palabra reservada STRUCT, seguida por un
campo etiqueta opcional, y luego una lista de miembros dentro de la estructura. La etiqueta
opcional se utiliza para crear otras variables del tipo particular de la estructura.

struct campo_etiqueta{
tipo_miembro miembro_1;
tipo_miembro miembro_2;
:
tipo_miembro miembro_n;
};

Un punto y coma finaliza la definición de una estructura puesto que esta es realmente una
sentencia C++.

Declaración de estructuras
Lo mismo que con el resto de las
clases , el proceso de usar una
estructura C++ comprende en
realidad tres pasos: definir la clase;
crear un objeto, e iniciar el objeto.

Definir la clase
En contra de lo que ocurre con el
resto de los tipos, que están predefinidos en el lenguaje. Por

8
ejemplo, al declarar char ch; ya se sabe exactamente que cosa es ch, en este caso hay que
definir previamente el tipo. Los tipos estructura se declaran mediante la palabra clave
struct. Sería algo así como:
Struct Punto;
struct Punt2 {int x; int y; int z; };
La primera sentencia es una declaración incompleta (ver más abajo); la segunda es una
definición completa de una nueva clase tipo struct denominado Punt2; tiene tres
componentes perfectamente definidos (tres int: x, y, z respectivamente). Como puede
verse, los componentes se determinan de forma análoga a los parámetros de las funciones,
determinando tipo y nombre. Aquí es imprescindible el punto y coma ";" para separar los
miembros (sin olvidar poner otro después del último).
Ya hemos señalado que en
C++ las estructuras son un
tipo de clases; entonces, si
nos referimos a la
terminología de la POO
diríamos que en esta fase
estamos definiendo la
clase. El conjunto de
declaraciones dentro de
los corchetes {...; ...; ...; }
declara los nombres y
tipos de sus miembros.
Los miembros pueden ser
de cualquier tipo con una
excepción:
Un miembro puede ser la
estructura que se declara
porque daría lugar a una
declaración circular (lo definido está dentro de su definición). Ejemplo:
struct mystr { mystr s };

// Ilegal

Uno, o varios, de los miembros puede ser un puntero a la estructura que se está declarando.
Ejemplo:
struct mystr { mystr *ps }

// Ok: Correcto

Nota: esta interesantísima posibilidad constituye la base de estructuras auto referenciadas;
una técnica de programación que tiene amplias posibilidades de aplicación. Por ejemplo,
listas enlazadas y árboles .

9
Capítulo 4.
Expresiones y operadores.
Los distintos operadores permiten formar expresiones tanto aritméticas como lógicas. Los
operadores aritméticos y lógicos son:
+, -

suma, resta

++, --

incremento, decremento

*, /, % multiplicación, división, módulo
>>, << rotación de bits a la derecha, izquierda.
&

AND booleano

|

OR booleano

^

EXOR booleano

~

complemento a 1

!

complemento a 2, NOT lógico

==, !=

igualdad, desigualdad

&&, ||

AND, OR lógico

<, <=

menor, menor o igual

>, >=

mayor, mayor o igual

En estos operadores deben tenerse en cuenta la precedencia de operadores y las reglas de
asociatividad, que son las normales en la mayoría de lenguajes. En la evaluación de
expresiones lógicas, los compiladores normalmente utilizan técnicas de evaluación rápida.
Para decidir si una expresión lógica es cierta o falsa muchas veces no es necesario evaluarla
completamente. Por ejemplo una expresión formada <exp1> || <exp2>, el compilador
evalúa primero <exp1> y si es cierta, no evalúa <exp2>. Por ello se deben evitar
construcciones en las que se modifiquen valores de datos en la propia expresión, pues su
comportamiento puede depender de la implementación del compilador o de la optimización
utilizada en una compilación o en otra. Estos son errores que se pueden cometer fácilmente
en C ya que una asignación es también una expresión.
Hay un tipo especial de expresión en C que se denomina expresión condicional y está
representada por los operadores? Su utilización es como sigue: <e>? <x>: <y>. Se evalúa si
e entonces x; si no, y.
int mayor (int a, int b ) {
return (a > b)? TRUE: FALSE;
}
waste_time () {
float a, b = 0.0;
( b > 0.0 ) ? sin(M_PI / 8) : cos(M_PI / 4);}

10
Capítulo 5.
Conversión de tipos.
Cuando escribimos una expresión
aritmética a+b, en la cual hay
variables o valores de distintos
tipos, el compilador realiza
determinadas conversiones antes
de que evalúe la expresión. Estas
conversiones pueden ser para
'aumentar' o 'disminuir' la
precisión del tipo al que se
convierten los elementos de la
expresión. Un ejemplo claro, es
la comparación de una variable
de tipo int con una variable de
tipo double. En este caso, la de
tipo int es convertida a double para poder realizar la comparación.
Los tipos pequeños son convertidos de la forma siguiente: un tipo char se convierte a int,
con el modificador signed si los caracteres son con signo, o unsigned si los caracteres son
sin signo. Un unsigned char es convertido a int con los bits más altos puestos a cero. Un
signed char es convertido a int con los bits más altos puestos a uno o cero, dependiendo del
valor de la variable.
Para los tipos de mayor tamaño:







Si un operando es de tipo double, el otro es convertido a double.
Si un operando es de tipo float, el otro es convertido a float.
Si un operando es de tipo unsigned long, el otro es convertido a unsigned long.
Si un operando es de tipo long, el otro es convertido a long.
Si un operando es de tipo unsigned, el otro es convertido a unsigned.
Si no, los operadores son de tipo int.

Una variable o expresión de un tipo se puede convertir explícitamente a otro tipo,
anteponiéndole el tipo entre paréntesis.
void cambio_tipo (void)
{
float a;
int b;
b = 10;
a = 0.5;
if ( a <=(float) b )
menor ();}

11
Capítulo 6.
Bloque de sentencias.
Las sentencias especifican y controlan el flujo de ejecución del programa. Si no existen
sentencias especıficas de selección o salto, el programa se ejecuta de forma secuencial en el
mismo orden en que se ha escrito el código fuente
.
En C++ el concepto de bloque de sentencias se utiliza para agrupar un conjunto de
sentencias dentro de un ámbito concreto dentro del programa. Un bloque de sentencias es
un conjunto de instrucciones englobadas bajo llaves { }.

Sentencia if
La sentencia if elige entre varias alternativas en base al valor de una o más expresiones
booleanas.
Sintaxis:
if( <expresión booleana>)
<bloque a ejecutar cuando la expresión es verdadera>
else
<bloque a ejecutar cuando la expresión es falsa>
La sentencia else es opcional, puede utilizarse o no. En el caso de no utilizarlo, cuando la
expresión evaluada sea falsa la ejecución continuará con la sentencia inmediatamente
posterior al if.

Comparaciones en C++
En C++ las comparaciones se especifican mediante el operador ==, en primera posición la
constante y como segundo miembro de la igualdad la variable. Dicha comparación nos
regresara un booleano.
if ( constante == variable){ }

Asignaciones en C++
En las asignaciones se debe evitar la conversión explicita de tipos de datos. Se aconseja no
hacer asignaciones múltiples, ya que estas dan a lugar a actuaciones erróneas. En general
las sentencias de asignación tienen la forma:
tipo variable;

12
variable = expresión;

Sentencia Switch
En casos en los que el programa presenta varias elecciones después de checar un expresión
múltiple o multi alternativa, donde el valor de una expresión determina que sentencias serán
ejecutadas es mejor utilizar una sentencia switch.
Esta estructura ocupa la palabra reservada break que permite que el flujo del programa se
detenga justo después de la ejecución de la sentencia anterior a ese break, pidiendo que se
ejecuten las sentencias correspondientes a las siguientes alternativas de switch.
Por otro lado default es opcional y engloba un conjunto de sentencias que se ejecutan en
caso de que ninguna de las alternativas del switch tenga un valor que coincida con el
resultado de evaluar la expresión del selector.
switch(var int o char)
{
case const1: instrucciones;
break;
case const2: instrucciones;
break;
default: instrucciones;
};

Sentencia For
La sentencia for se usara para definir un ciclo en el que
una variable se incrementa de manera constante en cada
iteración y la finalización del ciclo se determina mediante
una expresión constante. Como contador en for se
utilizaran preferiblemente variables de un solo carácter
como i, j, k, declarándolas dentro del mismo ciclo.
Su formato general es:
for (inicialización; condición; incremento)
{ instrucción (es); };

Sentencias While y do While
Al comenzar un ciclo while o do...while la expresión de control debe tener un valor
claramente definido, para impedir posibles indeterminaciones o errores de funcionamiento.

13
La sentencia while se usara para definir un ciclo en el que la condición de terminación se
evalúa al principio del mismo.
Su formato general es:

cargar o inicializar variable de condición;
while(condición)
{
grupo cierto de instrucciones;
instrucción(es) para salir del ciclo;
};

La sentencia do...while
Se usara para definir un ciclo en el que la condición de terminación se evaluara al final del
mismo.
Su formato general es:
cargar o inicializar variable de condición;
do {
grupo cierto de instrucción(es);
instrucción(es) de rompimiento de ciclo;
} while (condición);

Sentencia exit y return
La sentencia exit finaliza la ejecución de un proceso de
manera inmediata, forzando la vuelta al sistema
operativo. No se aconseja su utilización en cualquier
parte del código, siendo preferible controlar el flujo en
el proceso mediante bucles condicionales y devolver el
control mediante la sentencia return.
La sentencia return se utiliza para salir de una función o procedimiento, volviendo al punto
en el cual se llamó a dicha función o procedimiento. En el código hay que minimizar la
utilización de return, solo tendría que aparecer una vez en cada función o procedimiento, al
final del mismo, de manera que se tenga un solo punto de entrada a la función y un solo
punto de salida de la misma.

Sentencia break
La instrucción de salto break se usa para interrumpir (romper) la ejecución normal de un
bucle, es decir, la instrucción break finaliza la ejecución de un bucle y, por tanto, el control
del programa se transfiere (salta) a la primera instrucción después del bucle.

14
#include <stdio.h>
int main()
{
int n, a;
a = 0;
do
{
printf( "Introduzca un numero entero: " );
scanf( "%d", &n );
if ( n == 0 )
{
printf( "ERROR: El cero no tiene opuesto.n" );
break;
/* En el caso de que n sea un cero,
el bucle se interrumpe. */
}
printf( "El opuesto es: %dn", -n );
a += n;
} while ( n >= -10 && n <= 10 );
printf( "Suma: %d", a );
return 0;
}

16
Capítulo 7.
Funciones.
Un programa C está formado por un conjunto de funciones que al menos contiene la
función main. Una función se declara con el nombre de la función precedido del tipo de
valor que retorna y una lista de argumentos encerrados entre paréntesis. El cuerpo de la
función está formado por un conjunto de declaraciones y de sentencias comprendidas entre
llaves. Veamos un ejemplo de utilización de funciones:
#include <stdio.h>
#define VALOR 5
#define FACT 120
int fact_i (int v)
{
int r = 1, i = 0;
while (i <= v)
{
r = r * i;
i = i + 1;
}
return r;
}
int fact_r (int v)
{
if ( v == 0 ) return 1;
else return v * fact_r(v-1);
}
main() {
int r, valor = VALOR;
if ( (r = fact_i(valor)) != fact_r(valor) ) printf("Codificación errónea!!.n");
else if ( r == FACT ) printf("Codificación correcta.n");
else printf("Algo falla!!.n");
}

Se definen dos funciones, fact_i y fact_r, además de la función main. Ambas toman como
parámetro un valor entero y devuelven otro entero. La primera calcula el factorial de un
número de forma iterativa, mientras que la segunda hace lo mismo de forma recursiva.
Todas las líneas que comienzan con el símbolo # indican una directiva del pre compilador.
Antes de realizar la compilación en C se llama a un pre compilador cuya misión es procesar
el texto y realizar ciertas sustituciones textuales. Hemos visto que la directiva #include
incluye el texto contenido en un fichero en el fuente que estamos compilando. De forma
parecida, #define nombre texto sustituye todas las apariciones de nombre por texto. Así, en
el fuente, la palabra VALOR se sustituye por el número 5.

17
El valor que debe devolver una función se
indica con la palabra return. La evaluación de
la expresión debe dar una valor del mismo
tipo de dato que el que se ha definido como
resultado. La declaración de una variable
puede incluir una inicialización en la misma
declaración.
Se debe tener muy en cuenta que en C todos
los argumentos son pasados 'por valor'. No
existe el concepto de paso de parámetros 'por
variable' o 'por referencia'. Veamos un
ejemplo:
int incr ( int v ) { return v + 1; }
main() {
int a, b;
b = 3;
a = incr(b);
/* a = 4 mientras que b = 3. No ha cambiado
después de la llamada. */
}

En el ejemplo anterior el valor del parámetro de la función incr, aunque se modifique
dentro de la función, no cambia el valor de la variable b de la función main. Todo el texto
comprendido entre los caracteres /* y */ son comentarios al programa y son ignorados por
el compilador. En una fuente C los comentarios no se pueden anidar.

18
Capítulo 8.
Definición y prototipos de funciones.
Los programas sencillos, como los ejemplo planteados hasta ahora, normalmente no
necesitan un nivel de estructuración elevado. Pero cuando éstos crecen un poco
necesitamos estructurarlos adecuadamente para mantenerlos legibles, facilitar su
mantenimiento y para poder
reutilizar ciertas porciones de
código. El mecanismo C que
nos permite esto son las
funciones.
Con
los
compiladores, los fabricantes
nos
proporcionan
un
conjunto
importante
de
funciones de librería. A
veces, nos puede interesar
construir nuestras propias
librerías. Ya hemos utilizado
funciones, pero veamos
cómo debemos definirlas.
Los prototipos de funciones
son una característica clave
de la recomendación ANSI
del C. Un prototipo es una
declaración que toma la
forma:
tipo_resultado nombre_función (tipo_parámetro nombre_parámetro...);







int fact_i ( int v );
int mayor ( int a, int b );
int cero ( double a );
long raíz ( long valor );
void final_countdown ( void );
int main ( int argc, char **argv );

Observando el prototipo de una función podemos decir exactamente qué tipo de parámetros
necesita y que resultado devuelve. Si una función tiene como argumento void, quiere decir
que no tiene argumentos, al igual que si el resultado es void, no devuelve ningún valor.
En la vieja definición de Kernighan y Ritchie el tipo que devolvía una función se declaraba
únicamente si era distinto de int. Similarmente, los parámetros eran declarados en el cuerpo
de la función, en lugar de utilizar la lista de parámetros. Por ejemplo:

19
mayor ( a, b )
int a;
int b;
{
...
}
En un programa que esté formado por distintas partes bien diferenciadas es conveniente
utilizar múltiples ficheros fuente. Cada fuente agrupa las funciones semejantes, como por
ejemplo en un compilador podríamos tener un fuente para el análisis léxico, otro para el
sintáctico y otro para la generación de código. Pero en un fuente necesitaremos funciones
que se han definido en otro. Para ello, escribiremos, un fichero de cabecera (header), que
contendrá las declaraciones que podemos necesitar en otras fuentes. Así, en el fuente que
implementa el analizador sintáctico pondremos una línea #include "lexic.hx". De esta
forma al compilar el módulo sintáctico tendremos todos los prototipos de las funciones del
léxico y el compilador podrá detectar malas utilizaciones de las funciones allí definidas.

Capítulo 9.
Ámbito de funciones y variables.
El ámbito, o visibilidad, de una variable nos indica en que lugares del programa está activa
esa variable. Hasta ahora, en los ejemplos que hemos visto, se han utilizado variables
definidas en el cuerpo de funciones. Estas variables se crean en la memoria del ordenador
cuando se llama a la función y se destruyen cuando la función termina de ejecutarse. Es
necesario a veces, que una variable tenga un valor que pueda ser accesible desde todas las
funciones de un mismo fuente, e incluso desde otros fuentes.
En C, el ámbito de las variables depende de dónde han sido declaradas y si se les ha
aplicado algún modificador. Una variable definida en una función es, por defecto, una
variable local. Esto es, que sólo existe y puede ser accedida dentro de la función. Para que
una variable sea visible desde una función cualquiera de la misma fuente debe declararse
fuera de cualquier función. Esta variable sólo será visible en las funciones definidas
después de su declaración. Por esto, el lugar más común para definir las variables globales
es antes de la definición de ninguna función. Por defecto, una variable global es visible
desde otro fuente. Para definir que existe una variable global que está definida en otro
fuente tenemos que anteponer la palabra extern a su declaración. Esta declaración
únicamente indica al compilador que se hará referencia a una variable declarada en un
módulo distinto al que se compila.
Un modificador muy importante es const. Con él se pueden definir variables cuyo valor
debe permanecer constante durante toda la ejecución del programa. También se puede
utilizar con argumentos de funciones. En este caso se indica que el argumento en cuestión
es un parámetro y su valor no debe ser modificado. Si al programar la función,
modificamos ese parámetro, el compilador nos indicará el error.

20
#define EULER 2.71828
const double pi = 3.14159;
double lcercle (const double r )
{
return 2.0 * pi * r;
}
double EXP ( const double x )
{
return pow (EULER, x );
}
double sinh (const double x )
{
return (exp(x) - exp(-x)) / 2.0;
}
Debemos fijarnos que en el ejemplo anterior pi es una variable, la cual no podemos
modificar. Por ello pi sólo puede aparecer en un único fuente. Si la definimos en varios, al
linkar el programa se nos generará un error por tener una variable duplicada. En el caso en
que queramos acceder a ella desde otro fuente, debemos declararla con el modificador
extern.

21
CAPITULO 10.
Vectores y Matrices.
Un array (matriz o vector) es un conjunto finito y ordenado de elementos homogéneos. La
propiedad “ordenado” significa que el elemento primero, segundo y tercero,…, enésimo de
un array puede ser identificado. Los elementos del array son homogéneos, es decir, del
mismo tipo de datos. Los array también se conocen como matrices-en matemáticas- y
tablas- en cálculos financieros.
En otras palabras un arreglo es una especie de variable que contiene muchos valores pero
cada uno con una posición diferente. Un arreglo puede ser unidimensional o vectorial,
bidimensional o matricial, o multidimensional.

Vectores en C#
Qué es un vector? Un vector (o arreglo unidimensional) es una estructura de datos en la
cual se almacena un conjunto de datos de un mismo tipo. Es decir que un arreglo es una
lista de n elementos que posee las siguientes características:




Se identifica por un único nombre de variable
Sus elementos se almacenan en posiciones contiguas de memoria
Se accede a cada uno de sus elementos en forma aleatoria

22
MATRICES.
Son arreglos bidimensionales, es una colección finita, homogénea y ordenada de datos. Una
matriz está compuesta por filas y columnas, en la que se hace referencia a cada elemento
por medio de dos índices. El primero de los índices se utiliza para indicar la fila y el
segundo de los índices para indicar la columna.

Declaración de una matriz:
tipo_de_dato identificador [numFilas][numColumnas];;
Dónde:
tipo_de_dato: Es el tipo de datos que contendrá la matriz.

Identificador: Es el nombre que le damos a la variable matriz y por el cual la
referenciaremos en nuestro programa.
[numFilas][numColumnas] : Específica el número de Filas y de columnas que tendrá la
matriz

El espacio que las matrices ocupan en memoria se reserva en el momento de realizar la
declaración de los mismos.

23
Ejemplo:
int A[3][4];
// Declaración de una matriz de enteros de 3 filas y 4
columnas
float B[6][2]; // Declaración de una matriz de reales de 6 filas y 2
columnas
char C[4][10]; // Declamación de una matriz de caracteres de 4 filas y 10
columnas

Inicialización de una Matriz
Una matriz se pude inicializar para esto hay que agrupar entre {} cada fila. El formato a
utilizar sería el siguiente:
1
2
3
1
tipo_de_dato identificador[ filas ][ columnas ] = {

2

{ columnas de la fila 1 },

3

{ columnas de la fila 2 },

4

... ,

5

{ columnas de la última fila }

6

};

EJERCICIOS:
Que rellene un array con los 100 primeros números enteros y los muestre en pantalla
en orden descendente.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int x,tabla[100];
for (x=1;x<=100;x++)
{
tabla[x]=x;
}
24
for (x=100;x>=1;x--)
{
printf("%dn",tabla[x]);
}
system("PAUSE");
return 0;
}
Que lea 10 números por teclado, los almacene en un array y muestre la suma, resta,
multiplicación y división de todos.
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int x,tabla[10];
int sum,res,mul,div;
for (x=0;x<10;x++)
{
printf("Introduzca númeron");
scanf("%d",&tabla[x]);
}
sum=tabla[0];
res=tabla[0];
mul=tabla[0];
div=tabla[0];
for (x=1;x<10;x++)
{
sum=sum+tabla[x];
res=res-tabla[x];
mul=mul*tabla[x];
div=div/tabla[x];
}
printf("Suma: %dn",sum);
printf("Resta: %dn",res);
printf("Multiplicación: %dn",mul);
printf("División: %dn",div);
system("PAUSE");
return 0;

25
EJERCICIOS RESUELTOS DURANTE EL PERIODO DE
CLASES CONDICIONES IF, WHILE, DO WHILE, FOR,
ETC:
1.- Diseñe un programa que me permita obtener las comisiones de ventas de la empresa XYZ,
Bajo los siguientes condicionamientos si el valor de la venta es igual a
>= 3000 y <=5000 el porcentaje es de 5%,
>=5000 y <=8500 el porcentaje es de 7%;
>=8500 y <=10000 el porcentaje es de 8%
>10000 el porcentaje es de 10%;
Visualice el valor total de ventas ingresadas y el total de comisiones entregadas el proceso se
repite n veces.


Análisis del Programa:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
main ()
{
int a=1,b=0,oper;
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
float c,p,v,s,t,f,g,r,q;
do
PROCESO DE REPETICION
{
clrscr();
LIMPIADO DE PANTALLA
a=1;
b=0;
gotoxy(30,2);printf("COMISIONES DE VENTAS");
IMPRIMO VALORES Y LOS HAGO VALIDOS
gotoxy(5,5);printf("Ingresar el valor de la venta:");
scanf("%f",&c);
if((c>2999)&&(c<5001))
DECISION SENTENCIA
{
IF
p=(c*5)/100;
v=c+p;
gotoxy(8,10);printf("La venta total es=%f",v);
PROCESOS
gotoxy(8,13);printf("La ganancia es=%f",p);
}
if((c>5000)&&(c<8499))
DECISION SENTENCIA
{
IF
s=(c*7)/100;
t=s+c;
gotoxy(8,10);printf("La venta total es=%f",t);
PROCESOS
gotoxy(8,13);printf("La ganancia es=%f",s);
}
if((c>8500)&&(c<10001))
DECISION SENTENCIA
{
IF
r=(c*8)/100;
q=r+c;
gotoxy(8,10);printf("La venta total es=%f",q);

26
gotoxy(8,13);printf("La ganancia es=%f",r);
}
if(c>10000)
DECISION SENTENCIA
{
IF
f=(c*10)/100;
g=f+c;
gotoxy(8,10);printf("La venta total es=%f",g);
PROCESOS
gotoxy(8,13);printf("La ganancia es=%f",f);
}
gotoxy(30,20);printf("PRESS 1 para continuar o 0 abandonar");
scanf("%d",&oper);
}
while(oper==1);
getch();
CERRAMO EL
}
PROGRAMA


CERRAMOS PROCESO DE
REPETICION

DOCUMENTACION:

27


CORRIDO DEL PROGRAMA

28
2.- Diseñe un programa que me permita ingresar un número entero desde teclado de 1
al 7, y que me permita visualizar el nombre del día de la semana que corresponda.


Análisis del Programa:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
main ()
{
int d;
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
d=1;
clrscr();
gotoxy(10,2);printf("ingrese un dia de la semana");
IMPRIMO VALORES Y LOS HAGO VALIDOS
scanf("%d", &d);
do
{
PROCESO DE REPETICION
switch (d)
{
case 1:
gotoxy(10,5);printf("lunes");
break;
case 2:
gotoxy(10,5);printf("martes");
break;
case 3:
gotoxy(10,5);printf("miercoles");
break;
case 4:
gotoxy(10,5);printf("jueves");
break;
case 5:
gotoxy(10,5);printf("viernes");
break;
case 6:
gotoxy(10,5);printf("sabado");
break;
case 7:
gotoxy(10,5);printf("domingo");
break;
default:
gotoxy(10,5); printf("error");
}
} while (d<=7);

PROCESOS CASES

CERRAMOS PROCESO DE
REPETICION

getch();}
CERRAMO EL
PROGRAMA

29


DOCUMENTACION:

30


CORRIDO DEL PROGRAMA:

3.-Diseñe un programa que me permita ingresar 2 números por teclado y realizar la
suma de los mismos.


ANALISIS DEL PROGRAMA

#include<conio.h>
LIBRERIAS
#include<stdio.h>
void main()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int n1, n2, tot;
clrscr();
gotoxy(33,3);printf("SUMA DE DOS NUMEROS");
gotoxy(5,5);printf("primer valor:");scanf("%d",&n1);
IMPRIMO VALORES Y LOS HAGO VALIDOS
gotoxy(5,7);printf("segundo numero:");scanf("%d",&n2);
tot=n1+n2;
gotoxy(7,9);printf("la respuesta es = %d",tot);
getch();
CERRAMOS EL
}
PROGRAMA



DOCUMENTACION:

31


CORRIDO DEL PROGRAMA:

4.-Realice la suma de 2 números, siempre que el primer valor este entre 3 y 23, y el
segundo este entre 5 y 17.
#include<stdio.h>
#include<conio.h>
void main()
{

LIBRERIAS

int a,b,suma,op;
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
do
{
clrscr();
gotoxy(31,2); printf("suma de dos numeros");

32
do
PROCESO DE REPETICION
{
gotoxy(37,5);printf(" ");
gotoxy(10,5); printf("ingrese el primer numero==>");scanf("%d",&a);
}while (a<3 || a>23);

IMPRIMO VALORES
Y LOS HAGO VALIDOS

do
PROCESO DE REPETICION
{
gotoxy(37,7); printf(" ");
gotoxy(10,7); printf("ingrese el segundo numero==>");scanf("%d",&b);
}while (b<5 || b>17);
suma=a+b;

Y LOS HAGO VALIDOS

PROCESOS

gotoxy(10,9); printf("la suma es==>%d",suma);
gotoxy(10,11); printf("presione 1 para continuar o 0 para salir: ");scanf("%d",&op);
}while(op==1);
getch();
Cerramos EL
}
PROGRAMA



IMPRIMO VALORES

IMPRIMO
VALORES
Y LOS HAGO
VALIDOS

DOCUMENTACION:

33


CORRIDO DEL PROGRAMA:

6.-Diseñe un programa que me permita ingresar 3 números enteros desde teclado que
corresponden a 3 notas las mismas que deben estar entre 1 y 10, obtenga el promedio
correspondiente y determine su equivalencia.
 Si el promedio es mayor o igual a 7, está aprobado.
 Si el promedio es mayor o igual a 5 y
 Menor que 7 esta suspenso
 Si el promedio es menor que 5 esta reprobado


ANALISIS DEL PROGRAMA

#include<stdio.h>
#include<conio.h>
main()

LIBRERIAS

34
{
clrscr();
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int n1,n2,n3,p,s;
gotoxy(8,3); printf("promedios");
IMPRIMO VALORES
gotoxy(5,5); printf("ingrese la nota1: "); scanf("%d",&n1);
Y LOS HAGO VALIDOS
if(n1>10)
{
gotoxy(5,7);printf("nota incorrecta");
}
else
{
gotoxy(5,9); printf("ingrese la nota2: "); scanf("%d",&n2);
}
if(n2>10)
{
SENTENCIAS IF
gotoxy(5,11);printf("nota incorrecta");
}
else
{
gotoxy(5,13); printf("ingrese la nota3: "); scanf("%d",&n3);
}
if(n3>10)
{
gotoxy(5,15);printf("nota incorrecta");
}
s=n1+n2+n3;
PROCESOS
p=s/3;
gotoxy(5,17); printf("su pronedio es: %d",p );
if((p>=7)&&(p<=10))
{gotoxy(5,18);printf("Aprueba");}
if((p<=6)&&(p>=5))
{gotoxy(5,18); printf("Suspenso");}
if((p<=4)&&(p>=0))
{gotoxy(5,18); printf("Reprueba");}
getch();
}


Cerramos EL
PROGRAMA
DOCUMENTACION:

35
36


CORRIDO DEL PROGRAMA:

7.- Diseñe un programa que me permita ingresar el nombre de una persona y la edad de la
misma que debe estar entre 3 y 85, para obtener las siguientes equivalencias:
 Si la edad está entre 3 y 5 debe visualizarse: nombre, “es un bebé”
 Si la edad es > 5 y <13 debe visualizarse: nombre, “es un niño”
 Si la edad es > 13 y ≤ 21 debe visualizarse: nombre, “es un adolescente”
 Si la edad es > 21 y ≤ 60 debe visualizarse: nombre, “es un adulto”
 Si la edad es > 60 debe visualizarse: nombre, “es un adulto mayor”
El programa se repite tantas veces como el usuario lo desee.



ANALISIS DEL PROGRAMA

#include<stdio.h>
LIBRERIAS
#include<conio.h>
#include<string.h>
void main()
{
int ed,op;
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
char nombre[15];
do
ABRIMOS EL DO
{
clrscr();
gotoxy(31,1);printf("Saber edad y equivalencia");
flushall();
IMPRIMO VALORES
gotoxy(10,3);printf("Ingrese nombre: ");gets(nombre);
Y LOS HAGO VALIDOS

37
do
{
gotoxy(27,4);printf(" ");
gotoxy(10,4);printf("Ingrese la edad: ");scanf("%d",&ed);
}while(ed>85 || ed<3);
if(ed>=3 && ed<=5)
{
gotoxy(10,7);printf("Es un bebe");
}
else
{
if(ed>5 && ed<=13)
{
gotoxy(10,7);printf("Ni¤o");
}
else
SENTENCIAS IF
{
if(ed>15 && ed<=21)
{
gotoxy(10,7);printf("Adolecente");
}
else
{
if(ed>21 && ed<=61)
{
gotoxy(10,7);printf("Adulto");
}
else
{
gotoxy(10,7);printf("Adulto Mayor");
}
}
}
}
gotoxy(10,6);puts(nombre);
gotoxy(10,10);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op);
}while(op==1);
CERRAMOS EL DO
getch();
}
Cerramos EL
PROGRAMA



DOCUMENTACION:

38
39


COFICICACION DEL PROGRAMA

8.- Diseñe un programa que me permita simular la venta de productos en una factura, de la
cual necesitamos ingresar el nombre del producto, la cantidad, precio unitario y calcular el
precio total. El programa se repite n veces según los productos que el usuario desee ingresar.

40


ANALISIS DEL PROGRAMA

#include<stdio.h>
LIBRERIAS
#include<conio.h>
main()
{
int op,j,a=4,b=4,c=4,d=4,v=0;
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN
float cant,vuni,vtotal,iva,s,sub,totalp;
NUESTRO PROGRAMA
char p[15];
clrscr();
gotoxy(23,1); printf("SIMULACION DE FACTURA");
IMPRIMO VALORES
gotoxy(5,4); printf("Producto");
Y LOS HAGO VALIDOS
gotoxy(20,4); printf("Cantidad");
gotoxy(34,4); printf("Precio Unitario");
gotoxy(55,4); printf("Valor");
do
ABRIMOS EL DO
{
flushall();
a=a+1;gotoxy(5,a);gets(p);
b=b+1;gotoxy(23,b);scanf("%2f",&cant);
c=c+1;gotoxy(39,c);scanf("%2f",&vuni);
IMPRIMO VALORES
vtotal=cant*vuni;
LOS HAGO VALIDOS Y PROCESOS
d=d+1;gotoxy(55,d);printf("%.2f",vtotal);
v=v+vtotal;
gotoxy(2,24);printf("presione 1 para ingresar otro producto o 0 para finalizar la factura:
");scanf("%d",&op);
SENTENCIAS IF
}while(op==1);
CERRAMOS EL DO
j=v;
sub=j;
gotoxy(45,21); printf("subtotal: %.2f",sub);
iva=(sub*12)/100;
PROCESOS
gotoxy(50,22); printf("iva: %.2f",iva);
vtotal=sub+iva;
gotoxy(40,23); printf("valor a pagar: %.2f",vtotal);
getch();
Cerramos EL
}
PROGRAMA



DOCUMENTACION:

41


COFICICACION DEL PROGRAMA:

42
9.-Diseñe un programa que me permita calcular el promedio general de las notas de distintas
materias correspondientes al 2do semestre de docencia en informática, en donde cada uno de
las notas ingresadas deben estar entre 1 y 10.


ANALISIS:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
main()
{
int c=5,n1,n2,n3,op;
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN
float prom;
NUESTRO PROGRAMA
clrscr();
gotoxy(27,2);printf("Facultad de Ciencias Humanas");
gotoxy(30,3);printf("Segundo Informatica");
gotoxy(8,5); printf("Modulos nota 1nota 2 nota 3promedio");
gotoxy(5,6); printf("Programacion 1");
gotoxy(5,7); printf("Fisica 2");
IMPRIMO VALORES
gotoxy(5,8); printf("Matematica Basica");
Y LOS HAGO VALIDOS
gotoxy(5,9); printf("M. de la Investigacion");
gotoxy(5,10);printf("Trabajo en Equipo");
gotoxy(5,11);printf("Realidad Nacional");
gotoxy(5,12);printf("Ntics");
do
ABRIMOS EL DO

43
{
c=c+1;
do
{
gotoxy(39,c);printf(" ");
gotoxy(39,c);scanf("%d",&n1);
}
while (n1>10);
do
{
gotoxy(49,c);printf(" ");
gotoxy(49,c);scanf("%d",&n2);
}
while (n2>10);
do
{
gotoxy(60,c);printf(" ");
gotoxy(60,c);scanf ("%d",&n3);
}
while (n3>10);

SENTENCIA WHILE Y
PROCESOS

prom=(n1+n2+n3)/3;
gotoxy(70,c);printf("%.2f",prom);
gotoxy(5,15);printf("presione 1 para continuar o 0 para salir");scanf("%d",&op);
}
while (op==1);
CERRAMOS EL DO
getch();
}



CERRAMOS EL PROGRAMA

DOCUMENTACION:

44
45


CORRIDO DEL PROGRAMA:

10.-Realice un programa en C++ que me permita obtener el liquido a recibir de un
empleado bajo los siguientes parámetros:
El empleado percibe un salario minimo vital el mismo que depende de su categoría,
existen 3 posibles alterantivas, este datos deberá ser ingresada al inicio del programa
conjuntamente con el nombre del empleado:
 Categoria 1
180,00
 Categoría 2
250,00
 Categoría 3
380,00
A este salario minimo vital se le incluye algunos rubros que son:
1. Horas extras, las mimas que no pueden exceder 8, cada hora extra cuesta Usd.
1,80.
2. Bono familiar la misma que esta condicionada. Si el empleado tiene mas de dos
hujos se le paga Usd. 4,50 por cada hijo caso contrario se le reconoce Usd. 6,20
por cada hijo.
3. Obtenga el valor del IESS que es el 11,5 % del nominal
4. Se le descuenta el 2% del nominal como aporte a la asociación
5. Obtenga los valores correspondientres de ingresos, egresos y total a recibir.
El programa se genera n veces.


Análisis del Programa:

#include<stdio.h>

LIBRERIAS

46
#include<conio.h>
main ()
{
float x=180, y=250, z=380,s,iess,i=11.5,
dcto,a=2,p=1.80,ex,hex,j=4.50,k=6.20,b,in,eg,t;
VALIDACION DE LOS TERMINOS
ESTABLECIDAS EN NUESTRO PROGRAMA
int c,h,op;
char n[50];
do
PROCESO DE REPETICION
{
flushall();
clrscr();
gotoxy(31,3); printf("INGRESO DE DATOS");
gotoxy(2,5); printf("Ingrese su nombre: ");flushall(); gets(n);
do
{
gotoxy(2,8); printf("Escoja su categoria: 1, 2 o 3: "); scanf("%d",&c);
PROCESO DO
}
WHILE
while(c>3 || c<1);
VALIDANDO
gotoxy(2,11); printf("Cantidad de hijos registrados: "); scanf("%d",&h);
TERMINOS
do
{
gotoxy(2,14);printf("Horas extras registradas: "); scanf("%f",&hex);
}
while(hex<1 || hex>8);
clrscr();
gotoxy(5,3); printf("********************ROL DE PAGOS********************");
gotoxy(5,5); printf("Empleado: %s",n);
gotoxy(5,6); printf("Corresponde: Septiembre 2013");
gotoxy(5,7); printf("Dias laborados: 30 dias");
IMPRIMO VALORES Y
gotoxy(5,8); printf("**************************");
gotoxy(10,10); printf("Ingresos");
LOS HAGO VALIDOS
gotoxy(46,10); printf("Egresos");
gotoxy(5,12); printf("Sueldo nominal ");
if(c==1)
{
s=x;
gotoxy(21,12); printf("%.2f",s);
DECISION SENTENCIA
}
IF
if(c==2)
{
s=y;

47
gotoxy(21,12); printf("%.2f",s);
}
if(c==3)
{
s=z;
gotoxy(21,12); printf("%.2f",s);
}
iess=(s*i)/100;
gotoxy(38,12); printf("Seguro: ");
gotoxy(52,12); printf("%.2f",iess);

PROCESOS

dcto=(s*a)/100;
gotoxy(38,13); printf("Dcto. Asoc.: ");
gotoxy(52,13); printf("%.2f",dcto);
ex=(hex*p);
gotoxy(5,13); printf("Horas extras: ");
gotoxy(21,13);printf("%.2f",ex);
gotoxy(5,14); printf("Bono Familiar: ");
if (h>2)
{

b=(h*j);
gotoxy(21,14);printf("%.2f",b);
}

DECISION SENTENCIA
IF

if (h<3)
{
b=(h*k);
gotoxy(21,14);printf("%.2f",b);
}
in=(s+ex+b);
gotoxy(5,18); printf("Total Ingresos: ");
gotoxy(21,18);printf("%.2f",in);

PROCESOS

eg=(iess+dcto);
gotoxy(38,18);printf("Total Egresos: ");

48
gotoxy(52,18);printf("%.2f",eg);
t=(in-eg);
gotoxy(38,24);printf("TOTAL A RECIBIR: ");
gotoxy(55,24);printf("%.2f",t);
gotoxy(37,23);printf("*************************");
gotoxy(37,25);printf("*************************");
gotoxy(5,23); printf("presione 1 para regresar o ");
gotoxy(5,24); printf("presione 0 para salir: ");
scanf("%d",&op);
}
while (op==1);
getch();
}



SENTENCIA DO WHILE Y
PROCESOS

CERRAMOS EL
PROGRAMA

DOCUMENTACION :

49
50


CORRIDO DEL PROGRAMA

51
11.- Diseñe un programa que me permita imprimir un borde de pantalla


Análisis del Programa:

#include<stdio.h>
#include<conio.h>
main()
{
int i,limite,fila=6,op;

LIBRERIAS

VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA

fila=6;
LIMPIADO DE PANTALLA
clrscr();
//bordes
for (i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}

for (i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");

SENTENCIA FOR

SENTENCIA FOR

52
gotoxy(80,i);printf("*");
}
getch();
}

CERRAMOS EL
PROGRAMA



DOCUMENTACION



CORRIDO DEL PROGRAMA

53
12.- Diseñe un programa que me permita visualizar la serie de los números
pares y los impares que existen hasta el número límite ingresado desde teclado.


Análisis del Programa:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
main()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int i,limite,fila=6,op;
do
PROCESO DE REPETICION
{
fila=6;
clrscr();
LIMPIADOR DE PANTALLA
//bordes
for (i=1;i<=80;i++)
{
SENTENCIA FOR
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for (i=1;i<=24;i++)
SENTENCIA FOR
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
//serie de pares
VALIDACION DE LOS
TERMINOS ESTABLECIDAS EN
gotoxy(5,2);printf("ingrese el limite: ");scanf("%d",&limite);
NUESTRO PROGRAMA
gotoxy(20,4);printf("Pares:");
for (i=2;i<=limite;i+=2)
{
gotoxy(23,fila);printf("%d",i);
fila=fila+1;
}
fila=6;
SENTENCIA FOR

gotoxy(42,4);printf("Impares:");
for (i=1;i<=limite;i+=2)
{
gotoxy(46,fila);printf("%d",i);
fila=fila+1;
}

54
gotoxy(60,21);printf("presione:");
gotoxy(60,22);printf("1 para continuar");
gotoxy(60,23);printf("0 para salir: "); scanf("%d",&op);
}
while(op==1);
getch();
}



CERRAMOS EL PROCESOS
DE REPETICION

CERRAMOS EL
PROGRAMA

DOCUMENTACION

55


CORRIDO DEL PROGRAMA

56
13.- Realizar un programa y visualizar los números primos.


ANÁLISIS DEL PROGRAMA:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
#include<string.h>
main()
VALIDACION DE LOS TERMINOS ESTABLECIDAS
{
EN NUESTRO PROGRAMA
int i, j, fla=7, lim, cnt=0, resul, op;
do
PROCESO DE REPETICION
{
fla=7;
clrscr();
gotoxy(35,3);printf("NUMEROS PRIMOS");
for(i=1;i<=80;i++)
{
SENTENCIA FOR
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
SENTENCIA FOR
}
gotoxy(5,8);printf("ingrese limite: ");scanf("%d",&lim);
for(i=1;i<=lim;i++)
{
cnt=0;
for(j=1;j<=i;j++)
{
resul=i%j;
if(resul==0)
{
DECISION SENTENCIA
cnt=cnt+1;
}
IF
}
if(cnt==2)
{
gotoxy(40,fla);printf("%d",i);
fla=fla+1;
}
CERRAMOS EL
}
PROGRAMA



CORRIDO DE PROGRAMA

57
14.- Diseñe un programa que me permita visualizar la factorial de un número

ingresado desde teclado.


ANÁLISIS DEL PROGRAMA:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
main()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int i,j,m,l,f=1,op;
do
PROCESO DE REPETICION
{
clrscr();
f=1;
//borde de pantalla
m=10;
for (i=1;i<=80;i++)
{
gotoxy(i,1); printf("*");
gotoxy(i,24);printf("*");
SENTENCIA FOR
}
for (i=1;i<=24;i++)
{
gotoxy(1,i); printf("*");

58
gotoxy(80,i);printf("*");
}
gotoxy(31,3);printf("FACTORIALES");
IMPRIMO VALORES Y LOS
gotoxy(15,7);printf("ingrese el limite: ");scanf("%d",&l);
HAGO VALIDOS
for (j=1;j<=l;j++)
{
SENTENCIA FOR
f=f*j;
Y SUS PROCESOS
gotoxy(20,m);printf("El factorial de: %d = %d",j,f);
m=m+1;
}
gotoxy(15,22);printf("presione 1 para continuar o 0 para salir: ");scanf("%d",&op);
}
while (op==1);

getch();
}


CERRAMOS EL
PROGRAMA

DOCUMENTACION

59


CORRIDO DEL PROGRAMA

60
16.-Diseñe un programa que me permita ejercer la tabla de multiplicación de cualquier factor
imprimido desde teclado y por cualquier limite impreso desde teclado, el programa se genera n
veces, diseñe el borde de la pantalla.


ANÁLISIS DEL PROGRAMA:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
main ()
{
int fac,lim,i,n,m,j,op ;
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
do
{
PROCESO DE REPETICION
clrscr();
//borde de pantalla
m=9
for (i=1;i<=80;i++)
{
gotoxy(i,1); printf("*");
SENTENCIA FOR
gotoxy(i,24);printf("*");
}
BORDE DE PANTALLA
for (i=1;i<=24;i++)
{
gotoxy(1,i); printf("*");
gotoxy(80,i);printf("*");
}
//tabla de multiplicar
gotoxy(31,3); printf("TABLAS DE MULTIPLICAR");
gotoxy(10,5); printf("Factor: ");scanf("%d",&fac);
IMPRIMO VALORES Y LOS HAGO VALIDOS
gotoxy(10,7); printf("Limite: ");scanf("%d",&lim);
for(j=1;j<=lim;j++)
{
n=fac*j;
gotoxy(19,m); printf("%d",fac);
gotoxy(21,m); printf("*");
SENTENCIA FOR
gotoxy(23,m); printf("%d",j);
Y PROCESOS DE LA TABLA DE
gotoxy(25,m); printf("=");
MULTUIPLICAR
gotoxy(27,m); printf("%d",n);
m=m+1;
}
CERRAMOS
gotoxy(8,22); printf("presione 1 para regresar o 0 para salir: ");scanf("%d",&op);
PROCESO DE
}
REPETICION
while (op==1);
getch();
}



CERRAMOS EL
PROGRAMA

DOCUMENTACION

61
62


CORRIDO DEL PROGRAMA

17.- Diseñe un programa en c++ que me permita visualizar los números primos con
repetición y el borde.


ANÁLISIS DEL PROGRAMA:

#include<conio.h>
LIBRERIAS
#include<stdio.h>
main()
{
int i=0,j=0,lt,c,res=0,op=1,nc=0;
do
PROCESO DE REPETICION
{
clrscr();

VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO
PROGRAMA

LIMPIADOR DE PANTALLA

for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(79,i);printf("*");
}

SENTENCIA FOR PARA
REALIZAR EL BORDE

63
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
gotoxy(29,2);printf("NUMEROS PRIMOS");
gotoxy(6,4);printf("INGRESE EL LIMITE : ");scanf("%d",&lt);
gotoxy(6,6);printf("1");
c=2;
for(i=2;i<=lt;i++)
SENTENCIA FOR
{
for(j=1;j<=c;j++)
{
if(i%j==0)
{
nc=nc+1;
}
SENTENCIA IF
}
if(nc==2)
{
printf("%6d",i);
}
nc=0;
c=c+1;
}
gotoxy(2,23),printf("REPETIR 1 Y 0 PARA SALIR : ");scanf("%d",&op);
}
while(op==1);
CERRAMOS EL
getch();
}
PROGRAMA


VALIDACION DE LOS
TERMINOS
ESTABLECIDAS EN
NUESTRO PROGRAMA

CERRAMOS
PROCESO DE
REPETICION

DOCUMENTACION

64


CORRIDO DEL PROGRAMA

65
18.- Diseñe un programa que me permita generar cualquier seria de números.


ANÁLISIS DEL PROGRAMA:

#include<conio.h>
LIBRERIAS
#include<stdio.h>
void main()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int limite,i,fla,op;
do
PROCESO DE REPETICION
{
clrscr();
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
SENTENCIA FOR PARA
}
REALIZAR EL BORDE
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
flushall();
gotoxy(25,5);printf("Series");
IMPRIMO VALORES Y
gotoxy(15,6);printf("Ingrese limite: ");scanf("%d",&limite);
LOS HAGO VALIDOS
fla=6;
66
for(i=2;i<=limite;i+=2)
{
gotoxy(20,fla+1);printf("%d",i);
fla=fla+1;
SENTENCIA FOR Y SUS
}
RESPECTIVOS PROCESOS
fla=7;
for(i=1;i<=limite;i+=2)
{
gotoxy(40,fla);printf("%d",i);
fla=fla+1;
}
gotoxy(15,20);printf("Desea salir 1/0: ");scanf("%d",&op);
}while(op==1);
CERRAMOS EL
getch();
}
PROGRAMA


CERRAMOS PROCESO DE
REPETICION

DOCUMENTACION

67


CORRIDO DEL PROGRAMA:

68
19.- Diseñe un programa que me permita generar una serie de números, en donde el
numerados es cualquier factor ingresado desde teclado, y el numerador es la serie de
los números impares.


ANÁLISIS DEL PROGRAMA:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
void main ()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int i,l,j,c,d,s,p,op,fa;
do
PROCESO DE REPETICION
{
clrscr();
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
SENTENCIA FOR PARA
}
REALIZAR EL BORDE
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
gotoxy(16,2);printf("SERIE DE NUMEROS NUMERADOR
IMPRIMO VALORES Y
CUALQUIER,DENOMINADOR IMPAR");
LOS
gotoxy(10,3);printf("Ingrse el limite: ");scanf("%d",&l);
HAGO VALIDOS
gotoxy(10,4);printf("ingrese el factor:");scanf("%d",&fa);
c=0;
d=1;
for(i=1;i<=l;i++)
{
c=c+3;
gotoxy(5,6+i);printf("%d",c);
SENTENCIA FOR Y SUS
d=d+2;
RESPECTIVOS PROCESOS
gotoxy(13,6+i);printf("%d",d);
gotoxy(9,6+i);printf("/");
}
CERRAMOS
gotoxy(10,20);printf("Desea continuar 1 caso contario 0: ");scanf("%d",&op);
PROCESO DE
}while(op==1);
REPETICION
getch();
CERRAMOS EL
}
PROGRAMA



DOCUMENTACION

69


CORRIDO DEL PROGRAMA

70
20.- Realice un programa que me permita general la siguiente serie de datos:
N= 5
Factor impar como numerador
Factorial como denominador


ANÁLISIS DEL PROGRAMA:

#include<conio.h>
LIBRERIAS
#include<stdio.h>
void main()
{
int s,f,i,d,j,op;
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
float factorial;
do
PROCESO DE REPETICION
{
clrscr();

LIMPIADOR DE PANTALLA

for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{

SENTENCIA FOR PARA
REALIZAR EL BORDE

71
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
IMPRIMO VALORES Y
gotoxy(15,2);printf("SERIE DE NUMEROS CON NUMERADOR
LOS HAGO VALIDOS
IMPAR E FACTORIAL DENOMINADOR");
gotoxy(10,3);printf("Ingrse el limite: ");scanf("%d",&s);
do
{
PROCESO DE VALIDACION CON
gotoxy(32,4);printf(" ");
DO WHILE
gotoxy(10,4);printf("ingrese el factor:");scanf("%d",&f);
} while(f%2==0);
factorial=1;
for(i=1;i<=s;i++)
{
SENTENCIA FOR Y SUS
factorial=factorial*i;
gotoxy(5,6+i);printf("%d",f);
RESPECTIVOS PROCESOS
f=f+2;
gotoxy(13,6+i);printf("%4.0f",factorial);
gotoxy(9,6+i);printf("/");
}
CERRAMOS
gotoxy(10,20);printf("Desea continuar 1 caso contario 0: ");scanf("%d",&op);
PROCESO DE
}while(op==1);
REPETICION
getch();
CERRAMOS EL
}
PROGRAMA



DOCUMENTACION

72


CORRIDO DEL PROGRAMA

73
21.- Generar n elementos de la siguiente serie, cualquier factor ingresando desde
teclado como numerador, el denominador números pares


ANÁLISIS DEL PROGRAMA:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
void main ()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int i,l,j,c,d,s,p,op,fa;
do
PROCESO DE REPETICION
{
clrscr();
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
SENTENCIA FOR PARA
gotoxy(i,24);printf("*");
REALIZAR EL BORDE
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}

74
gotoxy(16,2);printf("SERIE DE NUMEROS NUMERADOR
IMPRIMO VALORES Y
CUALQUIER,DENOMINADOR PAR");
gotoxy(10,3);printf("Ingrse el limite: ");scanf("%d",&l);
LOS HAGO VALIDOS
gotoxy(10,4);printf("ingrese el factor:");scanf("%d",&fa);
c=0;
d=0;
for(i=1;i<=l;i++)
{
SENTENCIA FOR Y SUS
c=c+3;
gotoxy(5,6+i);printf("%d",c);
RESPECTIVOS PROCESOS
d=d+2;
gotoxy(13,6+i);printf("%d",d);
gotoxy(9,6+i);printf("/");
}
CERRAMOS
gotoxy(10,20);printf("Desea continuar 1 caso contario 0: ");scanf("%d",&op);
PROCESO
}while(op==1);
DE REPETICION
CERRAMOS EL
getch();
}
PROGRAMA


DOCUMENTACION

75


CORRIDO DEL PROGRAMA

22.- Genere una serie de datos que lleve por numerador el factorial y por
denominador la serie de Fibonacci.
#include<conio.h>
LIBRERIAS
#include<stdio.h>
main()
{
int i, limit, fibon=0, colum=5, b=1, c=0, fac=1, op;
do
PROCESO DE REPETICION
{

VALIDACION DE LOS TERMINOS
ESTABLECIDAS EN NUESTRO PROGRAMA

76
fibon=0, colum=5, b=1, c=0, fac=1;
clrscr();
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
SENTENCIA FOR PARA
}
REALIZAR EL BORDE
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
gotoxy(17,3);printf("SERIE NUMERADOR FACTORIAL
IMPRIMO VALORES Y LOS
Y DENOMINADOR FIBONACCI");
HAGO VALIDOS
gotoxy(4,5);printf("numero a visualizar: ");scanf("%d",&limit);
for(i=1;i<=limit;i++)
{
gotoxy(colum,9);printf("%d",fibon);
fibon=b+c;
SENTENCIA FOR Y SUS
b=c;
RESPECTIVOS PROCESOS
c=fibon;
gotoxy(colum,8);printf("-");
gotoxy(colum,7);printf("%d",fac);
fac=fac*i;
colum=colum+5;
}
CERRAMOS
gotoxy(3,22);printf("PRESIONE 1 PARA REPETIR LA SERIE O 0 PARA
PROCESO
FINALIZAR>> ");scanf("%d",&op);
DE REPETICION
}
while(op==1);
getch();
CERRAMOS EL
}
PROGRAMA


DOCUMENTACION

77


CORRIDO DEL PROGRAMA

78
23.- Genere la siguiente serie de datos primos en el numerador e impares en el
denominador.


ANÁLISIS DEL PROGRAMA:

#include<stdio.h>
#include<conio.h>
LIBRERIAS
#include<string.h>
main()
{
VALIDACION DE LOS TERMINOS
int i, j, np, cot=0, c=5, resul, op, colum=15, imp=1, aux;
ESTABLECIDAS EN NUESTRO PROGRAMA
do
PROCESO DE REPETICION
{
imp=1;
colum=15;
c=10;
clrscr();
gotoxy(16,3);printf("SERIE NUMERADOR PRIMOS DENOMINADOR IMPARES");
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
SENTENCIA FOR PARA
for(i=1;i<=24;i++)
REALIZAR EL BORDE
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
gotoxy(3,5);printf("Limite: ");scanf("%d",&np);
IMPRIMO VALORES Y LOS HAGO VALIDOS
gotoxy(10,7);printf("1");
gotoxy(8,6);printf("Serie: ");
aux=0;
for(i=1;i<=(2*np);i++)
{
if(aux==np)
{break;
}
cot=0;
SENTENCIA FOR Y SU
for(j=1;j<=i;j++)
RESPECTIVOS PROCESOS
{
resul=i%j;
if(resul==0)
{
cot=cot+1;
}
}
if(cot==2)

79
{
gotoxy(colum,7);printf("%d",i);
aux=aux+1;
gotoxy(colum,8);printf("-");
colum=colum+5;
gotoxy(c,9);printf("%d",imp);
imp=imp+2;
c=c+5;
}

DECISION SENTENCIA IF Y
SUS PROCESOS

}
gotoxy(3,23);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA
FINALIZAR: ");scanf("%d",&op);
}
while(op==1);
CERRAMOS EL
getch();
}
PROGRAMA



CERRAMOS
PROCESO DE
REPETICION

DOCUMENTACION

80


CORRIDO DEL PROGRAMA

81
24.-Diseñe un programa que me presente un menú de opciones con las operaciones
básicas, estas son suma, resta, multiplicación, división y una opción para salir del
programa.


ANÁLISIS DEL PROGRAMA:

#include<conio.h>
#include<stdio.h>
LIBRERIAS
#include<stdlib.h>
#include<math.h>
void borde()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int i;
clrscr();

LIMPIADOR DE PANTALLA

82
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void main()
{
int op,col=8,l,i;
float a,p,nu,s,r,c,m,c1,di,d,dv,e;
clrscr();
do
PROCESO DE REPETICION
{

SENTENCIA FOR PARA
REALIZAR EL BORDE

VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO
PROGRAMA

LLAMAMOS A LA FUNCION BORDE

borde();
gotoxy(32,3);printf("OPERACIONES BASICAS");
gotoxy(5,5);printf("1.Suma");
gotoxy(5,7);printf("2.Resta");
IMPRIMO VALORES Y LOS HAGO VALIDOS
gotoxy(5,9);printf("3.Multiplicaci¢n");
gotoxy(5,11);printf("4.Divisi¢n");
PARA EMPEZAR HACER EL MENU
gotoxy(5,13);printf("5.Salir");
gotoxy(5,22);printf("Que opcion desea realizar: ");
scanf("%d",&op);
switch(op)
{
case 1:
clrscr();
borde();
SENTENCIA CASE, FOR Y LA
IMPRESIÓN DE SUS
gotoxy(33,3);printf("SUMA");
PROCESOS
gotoxy(5,5);printf("Cuantos numeros desea sumar: ");
scanf("%d",&l);
for(i=1;i<=l;i++)
{
gotoxy(5,6);printf("Ingrese los numeros: ");scanf("%f",&nu);
s=s+nu;

83
}
gotoxy(col,8);printf("La suma es = %f",s);
break;
case 2:
clrscr();
SENTENCIA CASE, FOR Y LA
IMPRESIÓN DE SUS
borde();
PROCESOS
gotoxy(33,3);printf("RESTA");
gotoxy(5,5);printf("Ingrese la primera cantidad: ");
scanf("%f",&c);
gotoxy(5,6);printf("Ingrese la segunda cantidad: ");
scanf("%f",&c1);
if(c<=c1)
{
r=c1-c;
gotoxy(col,12);printf("Resta = %f",r);
}
DECISION SENTENCIA
else
IF Y SUS PROCESOS
{
r=c-c1;
gotoxy(col,12);printf("Resta = %f",r);
}
CERRAMOS EL CASE
break;
case 3:
clrscr();
borde();
SENTENCIA CASE Y LA
gotoxy(32,3);printf("MULTIPLICACION");
IMPRESIÓN DE SUS
gotoxy(5,5);printf("Ingrese el producto 1: ");scanf("%f",&p);
PROCESOS
gotoxy(5,7);printf("Ingrese el producto 2: ");scanf("%f",&nu);
m=p*nu;
gotoxy(col,13);printf("Multiplicaci¢n = %f",m);
break;
CERRAMOS EL CASE
case 4:
clrscr();
borde();
gotoxy(35,3);printf("DIVISION");
gotoxy(5,5);printf("Ingrese el dividendo: ");scanf("%f",&dv);
SENTENCIA CASE Y LA
gotoxy(5,6);printf("Ingrese el divisor: ");scanf("%f",&di);
IMPRESIÓN DE SUS
d=dv/di;
PROCESOS
gotoxy(col,12);printf("La division = %f",d);
break;
case 5:

84
clrscr();
borde();
exit(0);
CERRAMOS EL CASE
break;
}
gotoxy(3,23);printf("1 PARA VOLVER AL MENU DE DATOS
0 PARA FINALIZAR: ");scanf("%d",&op);
}
while(op==1);
getch();
CERRAMOS EL
}
PROGRAMA


CERRAMOS PROCESO DE
REPETICION

DOCUMENTACION:

85
86


CORRIDO DEL PROGRAMA:

87
25.- Realice un menú en el cual se visualice las 6 operaciones básicas: suma, resta,
multiplicación, división, potenciación y radicación, con sus respectivas validaciones.


ANÁLISIS DEL PROGRAMA:

#include<conio.h>
#include<stdio.h>
LIBRERIAS
#include<stdlib.h>
#include<math.h>
void borde()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int i;
clrscr();
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
SENTENCIA FOR PARA
for(i=1;i<=24;i++)
REALIZAR EL BORDE
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void main()
88
{
VALIDACION DE LOS TERMINOS
int i,a,p,num,exp,resul,b,op,opc,aux=0,s1,s2,s3,s4,d,val,
ESTABLECIDAS EN NUESTRO PROGRAMA
sum,min,sus,res,mult1,mult2,pro,di,div,coc;
float resp,f;
do
PROCESO DE REPETICION
{
clrscr();
{
borde();
gotoxy(20,3);printf("<>LAS SEIS OPERACIONES BASICAS>>");
gotoxy(10,5);printf("1.- SUMA");
gotoxy(10,7);printf("2.- RESTA");
gotoxy(10,9);printf("3.- MULTIPLICACION");
IMPRIMO VALORES Y LOS
gotoxy(10,11);printf("4.- DIVISION");
HAGO VALIDOS
gotoxy(10,13);printf("5.- RAIZ CUADRADA");
PARA EMPEZAR HACER
gotoxy(10,15);printf("6.- POTENCIACION");
EL MENU
gotoxy(10,17);printf("7.- SALIR");
do
{
gotoxy(38,21);printf("
");
VALIDAR CON LA SENTENCIA
gotoxy(10,21);printf("Que opcion desea realizar>> ");
WHILE
scanf("%d",&op);
}while(op>7);
switch(op)
{
case 1:
do
{
clrscr();
borde();
gotoxy(33,3);printf("SUMA");
SENTENCIA CASE Y LA
gotoxy(5,5);printf("Ingrese la primera cantidad>>");scanf("%d",&s1);
IMPRESIÓN DE SUS
gotoxy(5,7);printf("Ingrese la segunda cantidad>>");scanf("%d",&s2);
PROCESOS
gotoxy(5,9);printf("Ingrese la tercera cantidad>>");scanf("%d",&s3);
gotoxy(5,11);printf("Ingrese la cuarta cantidad>>");scanf("%d",&s4);
sum=s1+s2+s3+s4;
gotoxy(12,13);printf("suma>> %d",sum);
gotoxy(12,17);printf("PRESIONE 1 PARA REPETIR
EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc);
}while(opc==1) ;
break;
case 2:
do
{
clrscr();
borde();

CERRAMOS EL CASE

89
gotoxy(33,3);printf("RESTA");
gotoxy(5,5);printf("Ingrese el minuendo:");scanf("%d",&min);
do
{
gotoxy(27,7);printf(" ");
gotoxy(5,9);printf("ingrse el sustraendo:");scanf("%d",&sus);
}while(min<sus);
res=min-sus;
gotoxy(25,12);printf("la resta es>> %d",res);
gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR
EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc);
}while(opc==1) ;
CERRAMOS EL CASE
break;
case 3:
do
{
clrscr();
borde();
gotoxy(33,3);printf("MULTIPLICACION");
gotoxy(5,5);printf("ingrese el primer valor:");scanf("%d",&mult1);
gotoxy(5,7);printf("ingrese el segundo valor:");scanf("%d",&mult2);
pro=mult1*mult2;
gotoxy(12,11);printf("multiplicacion>> %d",pro);
gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR
EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc);
}while(opc==1) ;
CERRAMOS EL CASE
break;
case 4:
do
{
LIMPIADOR DE PANTALLA
clrscr();
borde();
gotoxy(33,3);printf("DIVISION");
gotoxy(5,5);printf("ingrese el dividendo:");scanf("%d",&di);
do
{
gotoxy(27,7);printf(" ");
gotoxy(5,9);printf("ingrse el divisor:");scanf("%d",&div);
}while(di<div);
coc=di/div;
gotoxy(12,11);printf("respuesta>> %d",coc);
gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR
EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc);
}while(opc==1) ;
break;
CERRAMOS EL CASE

SENTENCIA CASE Y LA
IMPRESIÓN DE SUS
PROCESOS

SENTENCIA CASE Y LA
IMPRESIÓN DE SUS
PROCESOS

SENTENCIA CASE Y LA
IMPRESIÓN DE SUS
PROCESOS

90
case 5:
do
PROCESO DE REPETICION
{
clrscr();
borde();
LLAMAMOS A LA FUNCION BORDE
gotoxy(33,3);printf("RAIZ CUADRADA");
gotoxy(5,5);printf("ingrese el valor:");scanf("%d",&val);
SENTENCIA CASE Y LA
resp=sqrt(val);
IMPRESIÓN DE SUS
gotoxy(12,11);printf("respuesta>> %f",resp);
PROCESOS
gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR
EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc);
}while(opc==1) ;
break;
CERRAMOS CASE
case 6:
do
PROCESOS DE REPETICION
{
clrscr();
borde();
gotoxy(33,3);printf("POTENCIACION");
SENTENCIA CASE Y LA
IMPRESIÓN DE SUS
gotoxy(5,5);printf("ingrese la base:");scanf("%d",&b);
PROCESOS
gotoxy(5,7);printf("ingrese el numero a exponer:");scanf("%d",&exp);
resul=b;
for(i=1;i<=exp-1;i++)
{
PROCESO FOR
resul=resul*b;
Y PROCESOS
gotoxy(12,11);printf("respuesta>> %d",resul);
}
CERRAMOS PROCESO DE
gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR
REPETICION
EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc);
}while(opc==1) ;
break;
CERRAMOS CASE
case 7:
exit;
SALIR TOTALMENTE DEL PROGRAMA
break;
}
}
CERRAMOS PROCESO DE
gotoxy(18,22);printf("DESEA VOLVER AL
REPETICION
MENU PRINCIPAL 1/0: ");scanf("%d",&aux);
}
while(aux==1);
getch();
CERRAMOS EL PROGRAMA
}

91


DOCUMENTACION

92
93
94


CORRIDO DEL PROGRAMA:

95
26.- Realice un menú de las áreas y perímetros de las 4 figuras básicas: circulo,
cuadrado, triangulo y rectángulo.


ANÁLISIS DEL PROGRAMA:

#include<conio.h>
#include<stdio.h>
LIBRERIAS
#include<stdlib.h>
void borde()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int i;
clrscr();
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
SENTENCIA FOR PARA
}
REALIZAR EL BORDE
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void main()
{

96
VALIDACION DE LOS TERMINOS

int i, l,a,p, op,opc,aux=0,ba,al,l1,l2,l3,r,d;
ESTABLECIDAS
float pi=13.141516;
EN NUESTRO PROGRAMA
do
PROCESO DE REPETICION
{
clrscr();
{
LLAMAMOS A LA FUNCION BORDE
borde();
gotoxy(20,3);printf("<<AREAS Y PERIMETROS DE
LAS 4 FIGURAS BASICAS>>");
gotoxy(10,5);printf("1.- CUADRADO");
gotoxy(10,7);printf("2.- TRIANGULO");
IMPRIMO VALORES Y LOS
gotoxy(10,9);printf("3.- RECTANGULO");
HAGO VALIDOS
gotoxy(10,11);printf("4.- CIRCULO");
PARA EMPEZAR HACER
gotoxy(10,13);printf("5.- Salir");
EL MENU
gotoxy(10,21);printf("Que opcion desea realizar>> ");
scanf("%d",&op);
switch(op)
{
case 1:
do
PROCESO DE REPETICION
{
clrscr();
borde();
gotoxy(33,3);printf("CUADRADO");
gotoxy(5,5);printf("Ingrese el lado del cuadrado>> ");
SENTENCIA CASE Y LA
scanf("%d",&l);
IMPRESIÓN DE SUS
a=l*l;
PROCESOS
p=l+l+l+l;
gotoxy(12,7);printf("Area>> %d",a);
gotoxy(12,9);printf("perimetro>> %d",p);
gotoxy(12,17);printf("PRESIONE 1 PARA
REPETIR EL PROCESO O 0 PARA FINALIZAR: ");
scanf("%d",&opc);
CERRAMOS PROCESO DE
}while(opc==1) ;
break;
REPETICION
case 2:
do
{
clrscr();
borde();
gotoxy(33,3);printf("TRIANGULO");
gotoxy(5,5);printf("Ingrese la base:");scanf("%d",&ba);
SENTENCIA CASE Y LA
gotoxy(5,7);printf("ingrse la altura:");scanf("%d",&al);
IMPRESIÓN DE SUS
gotoxy(5,13);printf("ingrese lado a:"),scanf("%d",&l1);
PROCESOS
gotoxy(5,15);printf("ingrese lado b:"),scanf("%d",&l2);
gotoxy(5,17);printf("ingrese lado c:"),scanf("%d",&l3);
a=ba*al/2;

97
gotoxy(30,6);printf("Area>> %d",a);
p=l1+l2+l3;
gotoxy(25,12);printf("perimetro>> %d",p);
gotoxy(20,21);printf("PRESIONE 1 PARA REPETIR EL
PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc);
}while(opc==1) ;
CERRAMOS EL CASE
break;
case 3:
do
PROCESO DE REPETICION
{
clrscr();
borde();
gotoxy(33,3);printf("RECTANGULO");
gotoxy(5,5);printf("ingrese la base:");scanf("%d",&ba);
gotoxy(5,7);printf("ingrese la altura:");scanf("%d",&al);
a=ba*al;
p=2*(ba+al);
gotoxy(12,11);printf("area>> %d",a);
gotoxy(12,13);printf("perimetro>> %d",p);
gotoxy(20,20);printf("PRESIONE 1 PARA REPETIR
EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc);
}while(opc==1) ;
CERRAMOS PROCESO DE

SENTENCIA CASE Y LA
IMPRESIÓN DE SUS
PROCESOS

REPETICION

break;
case 4:
do
{
clrscr();
borde();
gotoxy(33,3);printf("circulo");
gotoxy(5,5);printf("ingrese el radio:");scanf("%d",&r);
gotoxy(5,7);printf("ingrese el diametro:");scanf("%d",&d);
a= pi*(r*r);
p= pi*d;
gotoxy(12,11);printf("area>> %d",a);
gotoxy(12,13);printf("perimetro>> %d",p);

gotoxy(20,20);printf("PRESIONE 1 PARA
REPETIR EL PROCESO O 0 PARA FINALIZAR: ");
scanf("%d",&opc);
}while(opc==1);
break;
case 5:
exit;

SENTENCIA CASE Y LA
IMPRESIÓN DE SUS
PROCESOS

CERRAMOS PROCESO DE
REPETICION

SALIR TOTALMENTE DEL PROGRAMA

98
break;
}
}
gotoxy(20,22);printf("DESEA VOLVER AL MENU PRINCIPAL 1/0:
");scanf("%d",&aux);
}
while(aux==1);
getch();
CERRAMOS EL
}
PROGRAMA



CERRAMOS PROCESO
DE REPETICION

DOCUMENTACION

99
100
101


CORRIDO DEL PROGRAMA

102
27.- Realice un menú que me permita realizar las conversiones básicas de metro,
kilometro, hectómetro y decímetro.

#include<conio.h>
LIBRERIAS
#include<stdio.h>
#include<stdlib.h>
void borde()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int i;
clrscr();
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("±");
SENTENCIA FOR PARA
gotoxy(i,24);printf("±");
REALIZAR EL BORDE
}
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("±");
gotoxy(80,i);printf("±");
}
}
void main()
{
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
int op,col=8;

103
float km,nu,dam,hm,m;
clrscr();
do
PROCESO DE REPETICION
{
borde();
gotoxy(32,3);printf("CONVERSIONES BASICAS");
gotoxy(5,6);printf("1.- De Metros a Km - Hm - Dam");
gotoxy(5,8);printf("2.- De Kilometros a M - Hm - Dam");
gotoxy(5,10);printf("3.- De Hectometros a M - Km - Dam");
gotoxy(5,12);printf("4.- De Decametros a M - Km - Hm");
gotoxy(5,14);printf("5.- Salir");
gotoxy(5,22);printf("Que opcion desea realizar: ");
scanf("%d",&op);
switch(op)
{
case 1:
clrscr();
borde();
gotoxy(33,3);printf("De Metros a Km - Hm - Dam");
gotoxy(5,5);printf("Ingrece la cantidad: ");
scanf("%f",&nu);
km=nu*0.001;
hm=nu*0.01;
dam=nu*0.1;
gotoxy(col,8);printf("Km = %f",km);
gotoxy(col,10);printf("Hm = %f",hm);
gotoxy(col,12);printf("Dam = %f",dam);
break;
case 2:
clrscr();
borde();
gotoxy(33,3);printf("De Kilometros a M - Hm - Dam");
gotoxy(5,5);printf("Ingrece la cantidad: ");scanf("%f",&nu);
m=nu*1000;
hm=nu*100;
dam=nu*10;
gotoxy(col,8);printf("M = %f",m);
gotoxy(col,12);printf("Hm = %f",hm);
gotoxy(col,10);printf("Dam = %f",dam);
break;
case 3:
clrscr();
borde();
gotoxy(33,3);printf("De Hectometros a M - Km - Dam");
gotoxy(5,5);printf("Ingrece la cantidad: ");scanf("%f",&nu);
km=nu*0.1;
m=nu*100;

IMPRIMO VALORES Y LOS
HAGO VALIDOS
PARA EMPEZAR HACER
EL MENU

SENTENCIA CASE Y LA
IMPRESIÓN DE SUS
PROCESOS

SENTENCIA CASE Y LA
IMPRESIÓN DE SUS
PROCESOS

SENTENCIA CASE Y LA
IMPRESIÓN DE SUS
PROCESOS

104
dam=nu*10;
gotoxy(col,12);printf("Km = %f",km);
gotoxy(col,8);printf("M = %f",m);
gotoxy(col,10);printf("Dam = %f",dam);
break;
case 4:
clrscr();
borde();
gotoxy(33,3);printf("De Metros a M - Km - Hm");
gotoxy(5,5);printf("Ingrece la cantidad: ");scanf("%f",&nu);
km=nu*0.001;
hm=nu*0.01;
SENTENCIA CASE Y LA
m=nu*10;
IMPRESIÓN DE SUS
gotoxy(col,12);printf("Km = %f",km);
PROCESOS
gotoxy(col,10);printf("Hm = %f",hm);
gotoxy(col,8);printf("M = %f",m);
break;
case 5:
SALIR TOTALMENTE DEL PROGRAMA
exit(0);
break;
}
gotoxy(3,23);printf("1 PARA VOLVER AL MENU DE DATOS 0 PARA FINALIZAR:
");scanf("%d",&op);
CERRAMOS PROCESO DE
}
REPETICION
while(op==1);
getch();
CERRAMOS EL
}
PROGRAMA



DOCUMENTACION

105
106


CORRIDO DEL PROGRAMA

107
28.-Diseñe un programa que me permita realizar un borde utilizaciones funciones.
#include<stdio.h>
LIBRERIAS
#include<conio.h>
#include<stdlib.h>
int i;
void borde()
FUNCION BORDE
{
for(i=1;i<=80;i++)
{
gotoxy(i,24);printf("*");
gotoxy(i,1);printf("*");
SENTENCIA FOR PARA
}
REALIZAR EL BORDE
for(i=1;i<=24;i++)
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void main ()
{
clrscr();
LLAMAMOS A LA FUNCION BORDE
borde();
getch();
}



DOCUMENTACION

108


CORRIDO DEL PROGRAMA

109
29.-Diseñe un programa utilizando funciones que me permita generar n numeros
naturales


ANÁLISIS DEL PROGRAMA:

#include<stdio.h>
LIBRERIAS
#include<conio.h>
int limite,op,i,fila,col;
VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA
void borde()
{
for (i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
SENTENCIA FOR PARA
for (i=1;i<=24;i++)
REALIZAR EL BORDE
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void numeros(int limite1)
FUNCION NUMERO
{
fila=7;
col=10;
for(i=1;i<=limite1;i++)
{
gotoxy(col,fila);printf("%d",i);
fila=fila+1;
PROCESO FOR
if(fila==18)
Y PROCESOS
{
col=col+10;
fila=7;
}
}
}
void main()
{
do
PROCESO DE REPETICION
{
clrscr();
LLAMADO FUNCION DE BORDE
borde();
gotoxy(10,4);printf("serie de numeros");
gotoxy(15,5);printf("ingrese el limite==>");scanf("%d",&limite);
numeros(limite); //variable del programa
LLAMADO DE LA FUNCION NUMERO

110
gotoxy(20,20);printf("presine 1 para continuar o 0 para salir==>");
scanf("%d",&op);
}
while(op==1);
getche();
CERRAMOS EL
}
PROGRAMA


CERRAMOS PROCESO DE
REPETICION

DOCUMENTACION

111


CORRIDO DEL PROGRAMA

112
30.- Diseñe un programa utilizando funciones que me permita calcular el valor de las
comisiones por venta de vehículos según los siguientes condicionamientos, existen 3
vendedores, el vendedor 1, el vendedor 2, el vendedor 3, se asigna un valor de
comisión si:
 La venta es ≥ 8500 y ≤ 13500 la comisión es del 3%
 La venta es > 13500 y ≤ 18000 la comisión es del 8%
 La venta es > 18000 la comisión es del 11%
Obtenga el número de ventas realizadas por vendedor, el total de ventas realizadas, el
total de comisiones recibidas y el total general de todas las comisiones.


ANÁLISIS DEL PROGRAMA:

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int i,op,fila,op1,op2,v=0;
float totalv,c,valor,a,b,d;

LIBRERIAS

VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA

void borde()
FUNCION BORDE
{
clrscr();
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("*");
gotoxy(i,24);printf("*");
}
SENTENCIA FOR PARA
for(i=1;i<=24;i++)
REALIZAR EL BORDE
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
FUNCION VENDEDOR
void vendedor()
{
gotoxy(10,5);printf("Ingrese el valor de la venta:");
gotoxy(5,7);printf("Cantidad:");
gotoxy(19,7);printf("Porcentaje:");
gotoxy(35,7);printf("Comision:");
fila=8;
totalv=0;

IMPRIMO VALORES Y LOS
HAGO VALIDOS

113
do
PROCESO DE REPETICION
{
fila=fila+1;
gotoxy(6,fila);scanf("%f",&valor);
if(valor<8500)
{
gotoxy(34,fila);printf("sin comision");
}
else
{
if(valor>=8500 && valor<=13500)
{
DECISION SENTENCIA IF Y SUS
gotoxy(19,fila);printf(" 3% ");
PROCESOS
c=valor*0.03;
CORRESPONDIENTES
gotoxy(37,fila);printf("%.2f",c);
}
else
{
if(valor>13500 && valor<=18000)
{
gotoxy(19,fila);printf(" 8% ");
c=valor*0.08;
gotoxy(37,fila);printf("%.2f",c);
}
else
{
gotoxy(19,fila);printf(" 11% ");
c=valor*0.11;
gotoxy(37,fila);printf("%.2f",c);
}
}
}
totalv=totalv+valor;
gotoxy(50,5);printf("Total Ventas: %.2f ",totalv);
v=v+1;
PROCESOS
gotoxy(50,7);printf("Numero Ventas: %d ",v);
a=a+c;
gotoxy(50,9);printf("Total Comisiones: %.2f ",a);
gotoxy(54,22);printf(" ");
CERRAMOS PROCESO DE
gotoxy(10,22);printf("Desea ingresar otra venta 1 / Calcular 0 ==> ");
REPETICION
scanf("%d",&op1);

114
}while(op1==1);
}
FUNCION VENDEDOR
void vendedor2()
{
gotoxy(10,5);printf("Ingrese el valor de la venta:");

gotoxy(5,7);printf("Cantidad:");
gotoxy(19,7);printf("Porcentaje:");
gotoxy(35,7);printf("Comision:");
fila=8;
totalv=0;
do
PROCESO DE REPETICION
{
fila=fila+1;
gotoxy(6,fila);scanf("%f",&valor);
if(valor<8500)
{
gotoxy(34,fila);printf("sin comision");
}
else
{
if(valor>=8500 && valor<=13500)
{
gotoxy(19,fila);printf(" 3% ");
c=valor*0.03;
gotoxy(37,fila);printf("%.2f",c);
}
else
{
if(valor>13500 && valor<=18000)
{
gotoxy(19,fila);printf(" 8% ");
c=valor*0.08;
gotoxy(37,fila);printf("%.2f",c);
}
else
{
gotoxy(19,fila);printf(" 11% ");
c=valor*0.11;
gotoxy(37,fila);printf("%.2f",c);

IMPRIMO VALORES Y LOS
HAGO VALIDOS

DECISION SENTENCIA IF Y SUS
PROCESOS
CORRESPONDIENTES

115
}
}
}
totalv=totalv+valor;
gotoxy(50,5);printf("Total Ventas: %.2f ",totalv);
v=v+1;
PROCESOS
gotoxy(50,7);printf("Numero Ventas: %d ",v);
b=b+c;
gotoxy(50,9);printf("Total Comisiones: %.2f ",b);
gotoxy(54,22);printf(" ");
CERRAMOS PROCESO DE
gotoxy(10,22);printf("Desea ingresar otra venta 1 / Calcular 0 ==> ");
REPETICION
scanf("%d",&op1);
}while(op1==1);
}
void vendedor3()
FUNCION VENDEDOR
{
gotoxy(10,5);printf("Ingrese el valor de la venta:");
gotoxy(5,7);printf("Cantidad:");
IMPRIMO VALORES Y LOS
gotoxy(19,7);printf("Porcentaje:");
HAGO VALIDOS
gotoxy(35,7);printf("Comision:");
fila=8;
totalv=0;
do
{
fila=fila+1;
gotoxy(6,fila);scanf("%f",&valor);
if(valor<8500)
{
gotoxy(34,fila);printf("sin comision");
}
SENTENCIA CASE Y LA
else
IMPRESIÓN DE SUS
{
PROCESOS
if(valor>=8500 && valor<=13500)
{
gotoxy(19,fila);printf(" 3% ");
c=valor*0.03;
gotoxy(37,fila);printf("%.2f",c);
}
else
{
if(valor>13500 && valor<=18000)

116
{
gotoxy(19,fila);printf(" 8% ");
c=valor*0.08;
gotoxy(37,fila);printf("%.2f",c);
}
else
{
gotoxy(19,fila);printf(" 11% ");
c=valor*0.11;
gotoxy(37,fila);printf("%.2f",c);
}
}
}
totalv=totalv+valor;
gotoxy(50,5);printf("Total Ventas: %.2f ",totalv);
v=v+1;
PROCESOS
gotoxy(50,7);printf("Numero Ventas: %d ",v);
d=d+c;
gotoxy(50,9);printf("Total Comisiones: %.2f ",d);
gotoxy(54,22);printf(" ");
CERRAMOS PROCESO DE
gotoxy(10,22);printf("Desea ingresar otra venta 1 / Calcular 0 ==> ");
REPETICION
scanf("%d",&op1);
}while(op1==1);
}
FUNCION COMISIONES
void comisiones()
{
gotoxy(31,3);printf("TOTAL DE COMISIONES");
gotoxy(15,6);printf("Comision del primer vendedor: ");
gotoxy(50,6);printf("%.2f",a);
gotoxy(15,8);printf("Comision del segundo vendedor: ");
gotoxy(50,8);printf("%.2f",b);
gotoxy(15,10);printf("Comision del tercer vendedor: ");
gotoxy(50,10);printf("%.2f",d);
}
void main()
{
do
PROCESO DE REPETICION
{
v=0;
totalv=0;

PROCESOS

117
clrscr();
LLAMAMOS A LA FUNCION BORDE
borde();
gotoxy(31,3);printf("VENTAS DE VEHICULOS");
gotoxy(8,5);printf("1. Primer Vendedor");
IMPRIMO VALORES Y LOS
gotoxy(8,7);printf("2. Segundo Vendedor");
HAGO VALIDOS
gotoxy(8,9);printf("3. Tercer Vendedor");
PARA EMPEZAR HACER
gotoxy(8,11);printf("4. Total Comisiones");
EL MENU
gotoxy(8,13);printf("5. Salir");
do
{
gotoxy(27,20);printf("
");
gotoxy(5,20);printf("Ingrese una opcion ==> ");scanf("%d",&op);
}while(op>5);
switch (op)
{
case 1:
clrscr();
CASE 1 Y LA LLAMADA DE
FUNCION VENDEDOR
borde();
gotoxy(31,3);printf("Primer Vendedor");
vendedor();
break;
case 2:
clrscr();
borde();
CASE 2 Y LA LLAMADA DE
gotoxy(31,3);printf("Segundo Vendedor");
FUNCION VENDEDOR 2
vendedor2();
break;
case 3:
clrscr();
borde();
gotoxy(31,3);printf("Tercer Vendedor");
CASE 3 Y LA LLAMADA DE
vendedor3();
FUNCION VENDEDOR 3
break;
case 4:
clrscr();
borde();
CASE 1 Y LA LLAMADA
gotoxy(31,3);printf("TOTAL DE COMISIONES GENERAL");
DE FUNCION
comisiones();
COMISIONES
break;

118
case 5:
exit(0);
break;
}
gotoxy(61,22);printf(" ");
gotoxy(10,22);printf("Presiones 1 para volver al menu o 0 para salir ==>
");scanf("%d",&op2);
}while(op2==1);
getch();
CERRAMOS EL
}

CERRAMOS PROCESO
DE REPETICION

PROGRAMA



DOCUMENTACION

119
120
121
122
123


CORRIDO DEL PROGRAMA

124
125
126
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion
Programazion

Weitere ähnliche Inhalte

Was ist angesagt?

Herramientas flex y bison
Herramientas flex y bisonHerramientas flex y bison
Herramientas flex y bisonalexisdario
 
Compiladores flex bison
Compiladores flex bisonCompiladores flex bison
Compiladores flex bisonPancho Yepez
 
Introduccion al-lenguaje-c
Introduccion al-lenguaje-cIntroduccion al-lenguaje-c
Introduccion al-lenguaje-cDalva Icaza
 
Introduccion al lenguaje c
Introduccion al lenguaje cIntroduccion al lenguaje c
Introduccion al lenguaje cvictdiazm
 
Curso de lenguaje c prev
Curso de lenguaje c prevCurso de lenguaje c prev
Curso de lenguaje c prevjtk1
 
/Media/tom nissim/cursocpp
/Media/tom nissim/cursocpp/Media/tom nissim/cursocpp
/Media/tom nissim/cursocppTom Zambrano
 
Taller flex y bison
Taller flex y bisonTaller flex y bison
Taller flex y bisondanilopuente
 
Taller 21 de junio
Taller 21 de junioTaller 21 de junio
Taller 21 de junioAlex Ortiz
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prevjtk1
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++oscar020615
 

Was ist angesagt? (19)

Flex y bison
Flex y bisonFlex y bison
Flex y bison
 
TALLER FLEX Y BISON
TALLER FLEX Y BISONTALLER FLEX Y BISON
TALLER FLEX Y BISON
 
Herramientas flex y bison
Herramientas flex y bisonHerramientas flex y bison
Herramientas flex y bison
 
Compiladores flex bison
Compiladores flex bisonCompiladores flex bison
Compiladores flex bison
 
Introduccion al-lenguaje-c
Introduccion al-lenguaje-cIntroduccion al-lenguaje-c
Introduccion al-lenguaje-c
 
INTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISONINTRODUCCION A FLEX Y BISON
INTRODUCCION A FLEX Y BISON
 
Introduccion al lenguaje c
Introduccion al lenguaje cIntroduccion al lenguaje c
Introduccion al lenguaje c
 
Curso de lenguaje c prev
Curso de lenguaje c prevCurso de lenguaje c prev
Curso de lenguaje c prev
 
Clase 4
Clase 4Clase 4
Clase 4
 
/Media/tom nissim/cursocpp
/Media/tom nissim/cursocpp/Media/tom nissim/cursocpp
/Media/tom nissim/cursocpp
 
Turbo c
Turbo cTurbo c
Turbo c
 
Tutorial de- c. ++
Tutorial de- c. ++ Tutorial de- c. ++
Tutorial de- c. ++
 
Taller flex y bison
Taller flex y bisonTaller flex y bison
Taller flex y bison
 
Flex ybison
Flex ybisonFlex ybison
Flex ybison
 
Taller 21 de junio
Taller 21 de junioTaller 21 de junio
Taller 21 de junio
 
Lenguaje c 1
Lenguaje c 1Lenguaje c 1
Lenguaje c 1
 
Curso de programacion en c++ prev
Curso de programacion en c++ prevCurso de programacion en c++ prev
Curso de programacion en c++ prev
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 
Tutorial de visual c++
Tutorial de visual c++Tutorial de visual c++
Tutorial de visual c++
 

Ähnlich wie Programazion (20)

Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion c
 
Programación en c
Programación en cProgramación en c
Programación en c
 
Primera Clase
Primera ClasePrimera Clase
Primera Clase
 
Lenguaje c completo 6 g x revisar x los estudiantes
Lenguaje c completo 6 g x revisar x los estudiantesLenguaje c completo 6 g x revisar x los estudiantes
Lenguaje c completo 6 g x revisar x los estudiantes
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 
Informe.
Informe.Informe.
Informe.
 
LENGUAJE en C
LENGUAJE en CLENGUAJE en C
LENGUAJE en C
 
Programación c++forcsma
Programación c++forcsmaProgramación c++forcsma
Programación c++forcsma
 
IntroLenguajeC.ppt
IntroLenguajeC.pptIntroLenguajeC.ppt
IntroLenguajeC.ppt
 
C(++) programacion en c y c++
C(++)   programacion en c y c++C(++)   programacion en c y c++
C(++) programacion en c y c++
 
2 estructura programa-c
2 estructura programa-c2 estructura programa-c
2 estructura programa-c
 
Lenguajec
LenguajecLenguajec
Lenguajec
 
Programación c
Programación cProgramación c
Programación c
 
Programación c
Programación cProgramación c
Programación c
 
C
C C
C
 
Programación en c y c++
Programación en c y c++Programación en c y c++
Programación en c y c++
 
Programación en c y c++
Programación en c y c++Programación en c y c++
Programación en c y c++
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Como usar el lenguaje c++
Como usar el lenguaje c++Como usar el lenguaje c++
Como usar el lenguaje c++
 
definiciones de c++ para el trabajo.docx
definiciones de c++ para el trabajo.docxdefiniciones de c++ para el trabajo.docx
definiciones de c++ para el trabajo.docx
 

Mehr von Diego Rojas

sistema de gestión de contenidos
sistema de gestión de contenidossistema de gestión de contenidos
sistema de gestión de contenidosDiego Rojas
 
Herramientas diseño web
Herramientas diseño webHerramientas diseño web
Herramientas diseño webDiego Rojas
 
tipos de empresas
tipos de empresastipos de empresas
tipos de empresasDiego Rojas
 
DOCUMENTOS COMERCIALES
DOCUMENTOS COMERCIALESDOCUMENTOS COMERCIALES
DOCUMENTOS COMERCIALESDiego Rojas
 
Programacion web 1,2,3,4
Programacion web 1,2,3,4Programacion web 1,2,3,4
Programacion web 1,2,3,4Diego Rojas
 
Que es el internet programacion web
Que es el internet programacion webQue es el internet programacion web
Que es el internet programacion webDiego Rojas
 
Presentación Java
Presentación JavaPresentación Java
Presentación JavaDiego Rojas
 
Sistema de ecuaciones e inecuaciones
Sistema de ecuaciones e inecuacionesSistema de ecuaciones e inecuaciones
Sistema de ecuaciones e inecuacionesDiego Rojas
 

Mehr von Diego Rojas (9)

sistema de gestión de contenidos
sistema de gestión de contenidossistema de gestión de contenidos
sistema de gestión de contenidos
 
Herramientas diseño web
Herramientas diseño webHerramientas diseño web
Herramientas diseño web
 
tipos de empresas
tipos de empresastipos de empresas
tipos de empresas
 
DOCUMENTOS COMERCIALES
DOCUMENTOS COMERCIALESDOCUMENTOS COMERCIALES
DOCUMENTOS COMERCIALES
 
Mapas etiquetas
Mapas etiquetasMapas etiquetas
Mapas etiquetas
 
Programacion web 1,2,3,4
Programacion web 1,2,3,4Programacion web 1,2,3,4
Programacion web 1,2,3,4
 
Que es el internet programacion web
Que es el internet programacion webQue es el internet programacion web
Que es el internet programacion web
 
Presentación Java
Presentación JavaPresentación Java
Presentación Java
 
Sistema de ecuaciones e inecuaciones
Sistema de ecuaciones e inecuacionesSistema de ecuaciones e inecuaciones
Sistema de ecuaciones e inecuaciones
 

Kürzlich hochgeladen

Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 

Kürzlich hochgeladen (20)

Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 

Programazion

  • 1. Conceptos, estructuras básicas y ejercicios resueltos dentro de la introducción al lenguaje C++. EL ARTE DE PROGRAMAR DIEGO ROJAS 2013
  • 2. INDICE: INTRODUCCION………………………………………………………………………………………………………………………… 3 CAPITULO 1…………………………………………………………………………………………………………………………….. 4-5 CAPITULO2……………………………………………………………………………………………………………………………. 6-7 CAPITULO 3………………………………………………………………………………………………………………………… 8-9 CAPITULO 4………………………………………………………………………………………………………………………… 10 CAPITULO 5………………………………………………………………………………………………………………………… 11 CAPITULO 6………………………………………………………………………………………………………………………… 12-16 CAPITULO 7………………………………………………………………………………………………………………………… 17-18 CAPITULO 8………………………………………………………………………………………………………………………… 19 CAPITULO 9………………………………………………………………………………………………………………………… 20-21 CAPITULO 10………………………………………………………………………………………………………………………… 22-25 EJERCICIOS BASICOS CON LAS SENTENCIAS TRATADAS ANTERIORMENTE (IF,DO,DO WHILE,FOR) PROGRAMA N:1……………………………………………………………………………………………………….. 26-28 PROGRAMA N:2……………………………………………………………………………………………………….. 29-30 PROGRAMA N:3……………………………………………………………………………………………………… 31 PROGRAMA N:4…………………………………………………………………………………………………… 32 PROGRAMA N:5………………………………………………………………………………………………………33 PROGRAMA N:6………………………………………………………………………………………………………34-36 PROGRAMA N:7………………………………………………………………………………………………………37-39 PROGRAMA N:8………………………………………………………………………………………………………40-42 PROGRAMA N:9………………………………………………………………………………………………………43-45 PROGRAMA N:10……………………………………………………………………………………………………46-51 PROGRAMA N:11……………………………………………………………………………………………………52-53 PROGRAMA N:12……………………………………………………………………………………………………54-56 PROGRAMA N:13……………………………………………………………………………………………………57 PROGRAMA N:14……………………………………………………………………………………………………58-59 PROGRAMA N:15……………………………………………………………………………………………………60 PROGRAMA N:16……………………………………………………………………………………………………61-62 PROGRAMA N:17……………………………………………………………………………………………………63-65 PROGRAMA N:18……………………………………………………………………………………………………66-68 PROGRAMA N:19……………………………………………………………………………………………………69-70 PROGRAMA N:20……………………………………………………………………………………………………71-73 PROGRAMA N:21……………………………………………………………………………………………………74-75 PROGRAMA N:22……………………………………………………………………………………………………76-78 PROGRAMA N:23……………………………………………………………………………………………………79-81 PROGRAMA N:24……………………………………………………………………………………………………82-87 PROGRAMA N:25……………………………………………………………………………………………………88-95 PROGRAMA N:26……………………………………………………………………………………………………96-102
  • 3. PROGRAMA N:27……………………………………………………………………………………………………103-107 PROGRAMA N:28…………………………………………………………………………………………………108-109 PROGRAMA N:29………………………………………………………………………………………………110-112 PROGRAMA N:30………………………………………………………………………………………………113-126 PROGRAMA N:31………………………………………………………………………………………………127-131 EJERCICIOS CON VECTORES Y MATRICES: PROGRAMA N:32………………………………………………………………………………………………1132-134 PROGRAMA N:33………………………………………………………………………………………………135-137 PROGRAMA N:34………………………………………………………………………………………………138-139 PROGRAMA N:35………………………………………………………………………………………………140-147 PROGRAMA N:36………………………………………………………………………………………………148-152 PROGRAMA N:37………………………………………………………………………………………………153-157 PROGRAMA N:38………………………………………………………………………………………………158-160 PROGRAMA N:39………………………………………………………………………………………………161-164 PROGRAMA N:40………………………………………………………………………………………………165-171 PROGRAMA N:41………………………………………………………………………………………………172-175 PROGRAMA N:42………………………………………………………………………………………………175-177 PROGRAMA N:43………………………………………………………………………………………………178-183 PROGRAMA N:44………………………………………………………………………………………………184-186 PROGRAMA N:45………………………………………………………………………………………………187-189 PROGRAMA N:46………………………………………………………………………………………………190-195 PROGRAMA N:47………………………………………………………………………………………………195-201 PROGRAMA N:49………………………………………………………………………………………………201-206 PROGRAMA N:50………………………………………………………………………………………………206-210 PROGRAMA N:51………………………………………………………………………………………………211-214 PROGRAMA N:52………………………………………………………………………………………………215-217 PROGRAMA N:53………………………………………………………………………………………………218-221 PROGRAMA N:55………………………………………………………………………………………………222-226 PROGRAMA N:56………………………………………………………………………………………………226-228 PROGRAMA N:57………………………………………………………………………………………………228-231 PROGRAMA N:58………………………………………………………………………………………………231-233 PROGRAMA N:59………………………………………………………………………………………………233-238 PROGRAMA N:60………………………………………………………………………………………………238-241 LINCOGRAFIA…………………………………………………………………………………………………………………………242
  • 4. Introducción: C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador puede utilizar la totalidad del lenguaje. Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX, puesto que fueron desarrollados conjuntamente. Sin embargo, este lenguaje no está ligado a ningún sistema operativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se puede desarrollar cualquier tipo de aplicación. La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en 1970 para el primer sistema UNIX en un DEC PDP-7. Estos son lenguajes sin tipos, al contrario que el C que proporciona varios tipos de datos. Los tipos que ofrece son caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones. El primer compilador de C fue escrito por Dennis Ritchie para un DEC PDP-11 y escribió el propio sistema operativo en Introducción al lenguaje C (2). La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en 1970 para el primer sistema UNIX en un DEC PDP-7. Estos son lenguajes sin tipos, al contrario que el C que proporciona varios tipos de datos. Los tipos que ofrece son caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones. C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoría de computadoras actuales, como son los caracteres, números y direcciones. Estos tipos de datos pueden ser manipulados por las operaciones aritméticas que proporcionan las computadoras. No proporciona mecanismos para tratar tipos de datos que no sean los básicos, debiendo ser el programador el que los desarrolle. Esto permite que el código generado sea muy eficiente y de ahí el éxito que ha tenido como lenguaje de desarrollo de sistemas. No proporciona otros mecanismos de almacenamiento de datos que no sea el estático y no proporciona mecanismos de entrada ni salida. Ello permite que el lenguaje sea reducido y los compiladores de fácil implementación en distintos sistemas. Por contra, estas carencias se compensan mediante la inclusión de funciones de librería para realizar todas estas tareas, que normalmente dependen del sistema operativo. Muchas de las operaciones comunes con el sistema operativo se realizan a través de estas funciones. Una colección de ficheros de encabezamiento, headers, en los que se definen los tipos de datos y funciones incluidas en cada librería. Los programas que utilizan estas bibliotecas para interactuar con el sistema operativo obtendrán un comportamiento equivalente en otro sistema. 3
  • 5. Capítulo 1. Estructura básica de un programa en C. La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo que se puede escribir en C es el siguiente: main ( ) { } Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más importante de cualquier programa C y además, es el más pequeño que se puede escribir y que se compile correctamente. En el se define la función main, que es la que ejecuta el sistema operativo al llamar a un programa C. El nombre de una función C siempre va seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función está formada por un bloque de sentencias, que esta encerrado entre llaves {}. Un programa algo más complicado es el siguiente: #include <stdio.h> main ( ) { printf ("Hola amigos!n"); } Con el visualizamos el mensaje Hola amigos! en el terminal. En la primera línea indica que se tengan en cuenta las funciones y tipos definidos en la librería stdio (standard input/output). Estas definiciones se encuentran en el fichero header stdio.h. Ahora, en la función main se incluye una única sentencia que llama a la función printf. Esta toma como argumento una cadena de caracteres, que se imprimen van encerradas entre dobles comillas " ". El símbolo n indica un cambio de línea. 4
  • 6. Hay un grupo de símbolos, que son tratados como caracteres individuales, que especifican Alerta Espacio atrás Salto de página Salto de línea Retorno de carro Tabulación horizontal Tabulación vertical Barra invertida Comilla simple Comillas dobles Visualiza un carácter cuyo código ASCII es OOO en octal Visualiza un carácter cuyo código ASCII es HHH en hexadecimal algunos caracteres especiales del código ASCII. Los más importantes son: a b f n r t v ' " OOO xHHH Un programa C puede estar formado por diferentes módulos o fuentes. Es conveniente mantener las fuentes de un tamaño no muy grande, para que la compilación sea rápida. También, al dividirse un programa en partes, puede facilitar la legibilidad del programa y su estructuración. Las diferentes fuentes son compilados de forma separada, únicamente los fuentes que han sido modificados desde la última compilación, y después combinados con las librerías necesarias para formar el programa en su versión ejecutable. 5
  • 7. Capítulo 2. Tipos de datos y variables. Una variable es un espacio de memoria reservado en el ordenador para contener valores que pueden cambiar durante la ejecución de un programa. Los tipos que se le asignen a estas determinan como se manipulara la información contenida en ellas. Cada variable necesita un identificador que la distingue de las demás. Un identificador válido es una secuencia de una o más letras, dígitos o guiones bajos, recordando que no deben coincidir con palabras reservadas del lenguaje, deben comenzar por una letra y además tomar en cuenta que C++ hace diferencia entre mayúsculas y minúsculas. Las variables que se pueden presentar en un programa son de los siguientes tipos: 1. Variables Locales. Se definen solo en bloque en el que se vayan a ocupar, de esta manera evitamos tener variables definidas que luego no se utilizan. 2. Variables Globales. No son lo más recomendable, pues su existencia atenta contra la comprensión del código y su encapsulamiento. 3. Variables Estáticas. Se tienen que inicializar en el momento en que se declaran, de manera obligatoria. Ahora hablemos de los tipos de datos que reconoce C++. Estos definen el modo en que se usa el espacio (memoria) en los programas. Al especificar un tipo de datos, estamos indicando al compilador como crear un espacio de almacenamiento en particular, y también como manipular este espacio. Un tipo de dato define el posible rango de valores que una variable puede tomar al momento de ejecución del programa y a lo largo de toda la vida útil del propio programa. Los tipos de datos pueden ser predefinidos o abstractos. Un tipo de dato predefinido es intrínsecamente comprendido por el compilador. En contraste, un tipo de datos definido por el usuario es aquel que usted o cualquier otro programador crea como una clase, que comúnmente son llamados tipos de datos abstractos. 6
  • 8. Char Carácter (normalmente 8 bits) Short Entero corto con signo (normalmente 16 bits) Int Entero con signo (depende de la implementación) Unsigned Entero sin signo (depende de la implementación) Long Entero largo con signo (normalmente 32 bits) Float Flotante simple (normalmente 32 bits) Double Flotante doble (normalmente 64 bits) Las variables son definidas utilizando un identificador de tipo seguido del nombre de la variable. Veamos el siguiente programa: #include <stdio.h> main () { float cels, farh; farh = 35.0; cels = 5.0 * (farh - 32.0) / 9.0; printf ("-> %f F son %f Cn", farh, cels); } En el programa anterior se definen dos variables float, se asigna un valor a la primera y se calcula la segunda mediante una expresión aritmética. Las asignaciones en C también son una expresión, por lo que se pueden utilizar como parte de otra expresión, pero según que prácticas de este tipo no son muy recomendables ya que reducen la legibilidad del programa. En la instrucción printf, el símbolo %f indica que se imprime un número en coma flotante. Hay un tipo muy importante que se representa por void que puede significar dos cosas distintas, según su utilización. Puede significar nada, o sea que si una función devuelve un valor de tipo void no devuelve ningún resultado, o puede significar cualquier cosa, como puede ser un puntero a void es un puntero genérico a cualquier tipo de dato. Más adelante veremos su utilización. 7
  • 9. Capítulo 3. Estructuras. Una estructura es un grupo de variables relacionadas de manera lógica, las cuales pueden ser de diferentes tipos y declaradas en una sola unidad, donde la unidad es la estructura. ¿Para que nos sirve? Las estructuras nos ayudan a agrupar datos de una manera más ordenada y fácil para nosotros. Por ejemplo, supongamos que queremos guardar el nombre, la edad y el número de teléfono de un contacto en un programa en C/C++. Estas son una especie de hıbrido entre las estructuras de C y las clases de C++, de hecho podrían ser sustituidas por clases definidas ya que disponen de tres tipos de modificadores de acceso: público, privado y protegido, y el considerarlas como tales, permite un mayor control de acceso de las estructuras. En C++ se forma una estructura utilizando la palabra reservada STRUCT, seguida por un campo etiqueta opcional, y luego una lista de miembros dentro de la estructura. La etiqueta opcional se utiliza para crear otras variables del tipo particular de la estructura. struct campo_etiqueta{ tipo_miembro miembro_1; tipo_miembro miembro_2; : tipo_miembro miembro_n; }; Un punto y coma finaliza la definición de una estructura puesto que esta es realmente una sentencia C++. Declaración de estructuras Lo mismo que con el resto de las clases , el proceso de usar una estructura C++ comprende en realidad tres pasos: definir la clase; crear un objeto, e iniciar el objeto. Definir la clase En contra de lo que ocurre con el resto de los tipos, que están predefinidos en el lenguaje. Por 8
  • 10. ejemplo, al declarar char ch; ya se sabe exactamente que cosa es ch, en este caso hay que definir previamente el tipo. Los tipos estructura se declaran mediante la palabra clave struct. Sería algo así como: Struct Punto; struct Punt2 {int x; int y; int z; }; La primera sentencia es una declaración incompleta (ver más abajo); la segunda es una definición completa de una nueva clase tipo struct denominado Punt2; tiene tres componentes perfectamente definidos (tres int: x, y, z respectivamente). Como puede verse, los componentes se determinan de forma análoga a los parámetros de las funciones, determinando tipo y nombre. Aquí es imprescindible el punto y coma ";" para separar los miembros (sin olvidar poner otro después del último). Ya hemos señalado que en C++ las estructuras son un tipo de clases; entonces, si nos referimos a la terminología de la POO diríamos que en esta fase estamos definiendo la clase. El conjunto de declaraciones dentro de los corchetes {...; ...; ...; } declara los nombres y tipos de sus miembros. Los miembros pueden ser de cualquier tipo con una excepción: Un miembro puede ser la estructura que se declara porque daría lugar a una declaración circular (lo definido está dentro de su definición). Ejemplo: struct mystr { mystr s }; // Ilegal Uno, o varios, de los miembros puede ser un puntero a la estructura que se está declarando. Ejemplo: struct mystr { mystr *ps } // Ok: Correcto Nota: esta interesantísima posibilidad constituye la base de estructuras auto referenciadas; una técnica de programación que tiene amplias posibilidades de aplicación. Por ejemplo, listas enlazadas y árboles . 9
  • 11. Capítulo 4. Expresiones y operadores. Los distintos operadores permiten formar expresiones tanto aritméticas como lógicas. Los operadores aritméticos y lógicos son: +, - suma, resta ++, -- incremento, decremento *, /, % multiplicación, división, módulo >>, << rotación de bits a la derecha, izquierda. & AND booleano | OR booleano ^ EXOR booleano ~ complemento a 1 ! complemento a 2, NOT lógico ==, != igualdad, desigualdad &&, || AND, OR lógico <, <= menor, menor o igual >, >= mayor, mayor o igual En estos operadores deben tenerse en cuenta la precedencia de operadores y las reglas de asociatividad, que son las normales en la mayoría de lenguajes. En la evaluación de expresiones lógicas, los compiladores normalmente utilizan técnicas de evaluación rápida. Para decidir si una expresión lógica es cierta o falsa muchas veces no es necesario evaluarla completamente. Por ejemplo una expresión formada <exp1> || <exp2>, el compilador evalúa primero <exp1> y si es cierta, no evalúa <exp2>. Por ello se deben evitar construcciones en las que se modifiquen valores de datos en la propia expresión, pues su comportamiento puede depender de la implementación del compilador o de la optimización utilizada en una compilación o en otra. Estos son errores que se pueden cometer fácilmente en C ya que una asignación es también una expresión. Hay un tipo especial de expresión en C que se denomina expresión condicional y está representada por los operadores? Su utilización es como sigue: <e>? <x>: <y>. Se evalúa si e entonces x; si no, y. int mayor (int a, int b ) { return (a > b)? TRUE: FALSE; } waste_time () { float a, b = 0.0; ( b > 0.0 ) ? sin(M_PI / 8) : cos(M_PI / 4);} 10
  • 12. Capítulo 5. Conversión de tipos. Cuando escribimos una expresión aritmética a+b, en la cual hay variables o valores de distintos tipos, el compilador realiza determinadas conversiones antes de que evalúe la expresión. Estas conversiones pueden ser para 'aumentar' o 'disminuir' la precisión del tipo al que se convierten los elementos de la expresión. Un ejemplo claro, es la comparación de una variable de tipo int con una variable de tipo double. En este caso, la de tipo int es convertida a double para poder realizar la comparación. Los tipos pequeños son convertidos de la forma siguiente: un tipo char se convierte a int, con el modificador signed si los caracteres son con signo, o unsigned si los caracteres son sin signo. Un unsigned char es convertido a int con los bits más altos puestos a cero. Un signed char es convertido a int con los bits más altos puestos a uno o cero, dependiendo del valor de la variable. Para los tipos de mayor tamaño:       Si un operando es de tipo double, el otro es convertido a double. Si un operando es de tipo float, el otro es convertido a float. Si un operando es de tipo unsigned long, el otro es convertido a unsigned long. Si un operando es de tipo long, el otro es convertido a long. Si un operando es de tipo unsigned, el otro es convertido a unsigned. Si no, los operadores son de tipo int. Una variable o expresión de un tipo se puede convertir explícitamente a otro tipo, anteponiéndole el tipo entre paréntesis. void cambio_tipo (void) { float a; int b; b = 10; a = 0.5; if ( a <=(float) b ) menor ();} 11
  • 13. Capítulo 6. Bloque de sentencias. Las sentencias especifican y controlan el flujo de ejecución del programa. Si no existen sentencias especıficas de selección o salto, el programa se ejecuta de forma secuencial en el mismo orden en que se ha escrito el código fuente . En C++ el concepto de bloque de sentencias se utiliza para agrupar un conjunto de sentencias dentro de un ámbito concreto dentro del programa. Un bloque de sentencias es un conjunto de instrucciones englobadas bajo llaves { }. Sentencia if La sentencia if elige entre varias alternativas en base al valor de una o más expresiones booleanas. Sintaxis: if( <expresión booleana>) <bloque a ejecutar cuando la expresión es verdadera> else <bloque a ejecutar cuando la expresión es falsa> La sentencia else es opcional, puede utilizarse o no. En el caso de no utilizarlo, cuando la expresión evaluada sea falsa la ejecución continuará con la sentencia inmediatamente posterior al if. Comparaciones en C++ En C++ las comparaciones se especifican mediante el operador ==, en primera posición la constante y como segundo miembro de la igualdad la variable. Dicha comparación nos regresara un booleano. if ( constante == variable){ } Asignaciones en C++ En las asignaciones se debe evitar la conversión explicita de tipos de datos. Se aconseja no hacer asignaciones múltiples, ya que estas dan a lugar a actuaciones erróneas. En general las sentencias de asignación tienen la forma: tipo variable; 12
  • 14. variable = expresión; Sentencia Switch En casos en los que el programa presenta varias elecciones después de checar un expresión múltiple o multi alternativa, donde el valor de una expresión determina que sentencias serán ejecutadas es mejor utilizar una sentencia switch. Esta estructura ocupa la palabra reservada break que permite que el flujo del programa se detenga justo después de la ejecución de la sentencia anterior a ese break, pidiendo que se ejecuten las sentencias correspondientes a las siguientes alternativas de switch. Por otro lado default es opcional y engloba un conjunto de sentencias que se ejecutan en caso de que ninguna de las alternativas del switch tenga un valor que coincida con el resultado de evaluar la expresión del selector. switch(var int o char) { case const1: instrucciones; break; case const2: instrucciones; break; default: instrucciones; }; Sentencia For La sentencia for se usara para definir un ciclo en el que una variable se incrementa de manera constante en cada iteración y la finalización del ciclo se determina mediante una expresión constante. Como contador en for se utilizaran preferiblemente variables de un solo carácter como i, j, k, declarándolas dentro del mismo ciclo. Su formato general es: for (inicialización; condición; incremento) { instrucción (es); }; Sentencias While y do While Al comenzar un ciclo while o do...while la expresión de control debe tener un valor claramente definido, para impedir posibles indeterminaciones o errores de funcionamiento. 13
  • 15. La sentencia while se usara para definir un ciclo en el que la condición de terminación se evalúa al principio del mismo. Su formato general es: cargar o inicializar variable de condición; while(condición) { grupo cierto de instrucciones; instrucción(es) para salir del ciclo; }; La sentencia do...while Se usara para definir un ciclo en el que la condición de terminación se evaluara al final del mismo. Su formato general es: cargar o inicializar variable de condición; do { grupo cierto de instrucción(es); instrucción(es) de rompimiento de ciclo; } while (condición); Sentencia exit y return La sentencia exit finaliza la ejecución de un proceso de manera inmediata, forzando la vuelta al sistema operativo. No se aconseja su utilización en cualquier parte del código, siendo preferible controlar el flujo en el proceso mediante bucles condicionales y devolver el control mediante la sentencia return. La sentencia return se utiliza para salir de una función o procedimiento, volviendo al punto en el cual se llamó a dicha función o procedimiento. En el código hay que minimizar la utilización de return, solo tendría que aparecer una vez en cada función o procedimiento, al final del mismo, de manera que se tenga un solo punto de entrada a la función y un solo punto de salida de la misma. Sentencia break La instrucción de salto break se usa para interrumpir (romper) la ejecución normal de un bucle, es decir, la instrucción break finaliza la ejecución de un bucle y, por tanto, el control del programa se transfiere (salta) a la primera instrucción después del bucle. 14
  • 16. #include <stdio.h> int main() { int n, a; a = 0; do { printf( "Introduzca un numero entero: " ); scanf( "%d", &n ); if ( n == 0 ) { printf( "ERROR: El cero no tiene opuesto.n" ); break; /* En el caso de que n sea un cero, el bucle se interrumpe. */ } printf( "El opuesto es: %dn", -n ); a += n; } while ( n >= -10 && n <= 10 ); printf( "Suma: %d", a ); return 0; } 16
  • 17. Capítulo 7. Funciones. Un programa C está formado por un conjunto de funciones que al menos contiene la función main. Una función se declara con el nombre de la función precedido del tipo de valor que retorna y una lista de argumentos encerrados entre paréntesis. El cuerpo de la función está formado por un conjunto de declaraciones y de sentencias comprendidas entre llaves. Veamos un ejemplo de utilización de funciones: #include <stdio.h> #define VALOR 5 #define FACT 120 int fact_i (int v) { int r = 1, i = 0; while (i <= v) { r = r * i; i = i + 1; } return r; } int fact_r (int v) { if ( v == 0 ) return 1; else return v * fact_r(v-1); } main() { int r, valor = VALOR; if ( (r = fact_i(valor)) != fact_r(valor) ) printf("Codificación errónea!!.n"); else if ( r == FACT ) printf("Codificación correcta.n"); else printf("Algo falla!!.n"); } Se definen dos funciones, fact_i y fact_r, además de la función main. Ambas toman como parámetro un valor entero y devuelven otro entero. La primera calcula el factorial de un número de forma iterativa, mientras que la segunda hace lo mismo de forma recursiva. Todas las líneas que comienzan con el símbolo # indican una directiva del pre compilador. Antes de realizar la compilación en C se llama a un pre compilador cuya misión es procesar el texto y realizar ciertas sustituciones textuales. Hemos visto que la directiva #include incluye el texto contenido en un fichero en el fuente que estamos compilando. De forma parecida, #define nombre texto sustituye todas las apariciones de nombre por texto. Así, en el fuente, la palabra VALOR se sustituye por el número 5. 17
  • 18. El valor que debe devolver una función se indica con la palabra return. La evaluación de la expresión debe dar una valor del mismo tipo de dato que el que se ha definido como resultado. La declaración de una variable puede incluir una inicialización en la misma declaración. Se debe tener muy en cuenta que en C todos los argumentos son pasados 'por valor'. No existe el concepto de paso de parámetros 'por variable' o 'por referencia'. Veamos un ejemplo: int incr ( int v ) { return v + 1; } main() { int a, b; b = 3; a = incr(b); /* a = 4 mientras que b = 3. No ha cambiado después de la llamada. */ } En el ejemplo anterior el valor del parámetro de la función incr, aunque se modifique dentro de la función, no cambia el valor de la variable b de la función main. Todo el texto comprendido entre los caracteres /* y */ son comentarios al programa y son ignorados por el compilador. En una fuente C los comentarios no se pueden anidar. 18
  • 19. Capítulo 8. Definición y prototipos de funciones. Los programas sencillos, como los ejemplo planteados hasta ahora, normalmente no necesitan un nivel de estructuración elevado. Pero cuando éstos crecen un poco necesitamos estructurarlos adecuadamente para mantenerlos legibles, facilitar su mantenimiento y para poder reutilizar ciertas porciones de código. El mecanismo C que nos permite esto son las funciones. Con los compiladores, los fabricantes nos proporcionan un conjunto importante de funciones de librería. A veces, nos puede interesar construir nuestras propias librerías. Ya hemos utilizado funciones, pero veamos cómo debemos definirlas. Los prototipos de funciones son una característica clave de la recomendación ANSI del C. Un prototipo es una declaración que toma la forma: tipo_resultado nombre_función (tipo_parámetro nombre_parámetro...);       int fact_i ( int v ); int mayor ( int a, int b ); int cero ( double a ); long raíz ( long valor ); void final_countdown ( void ); int main ( int argc, char **argv ); Observando el prototipo de una función podemos decir exactamente qué tipo de parámetros necesita y que resultado devuelve. Si una función tiene como argumento void, quiere decir que no tiene argumentos, al igual que si el resultado es void, no devuelve ningún valor. En la vieja definición de Kernighan y Ritchie el tipo que devolvía una función se declaraba únicamente si era distinto de int. Similarmente, los parámetros eran declarados en el cuerpo de la función, en lugar de utilizar la lista de parámetros. Por ejemplo: 19
  • 20. mayor ( a, b ) int a; int b; { ... } En un programa que esté formado por distintas partes bien diferenciadas es conveniente utilizar múltiples ficheros fuente. Cada fuente agrupa las funciones semejantes, como por ejemplo en un compilador podríamos tener un fuente para el análisis léxico, otro para el sintáctico y otro para la generación de código. Pero en un fuente necesitaremos funciones que se han definido en otro. Para ello, escribiremos, un fichero de cabecera (header), que contendrá las declaraciones que podemos necesitar en otras fuentes. Así, en el fuente que implementa el analizador sintáctico pondremos una línea #include "lexic.hx". De esta forma al compilar el módulo sintáctico tendremos todos los prototipos de las funciones del léxico y el compilador podrá detectar malas utilizaciones de las funciones allí definidas. Capítulo 9. Ámbito de funciones y variables. El ámbito, o visibilidad, de una variable nos indica en que lugares del programa está activa esa variable. Hasta ahora, en los ejemplos que hemos visto, se han utilizado variables definidas en el cuerpo de funciones. Estas variables se crean en la memoria del ordenador cuando se llama a la función y se destruyen cuando la función termina de ejecutarse. Es necesario a veces, que una variable tenga un valor que pueda ser accesible desde todas las funciones de un mismo fuente, e incluso desde otros fuentes. En C, el ámbito de las variables depende de dónde han sido declaradas y si se les ha aplicado algún modificador. Una variable definida en una función es, por defecto, una variable local. Esto es, que sólo existe y puede ser accedida dentro de la función. Para que una variable sea visible desde una función cualquiera de la misma fuente debe declararse fuera de cualquier función. Esta variable sólo será visible en las funciones definidas después de su declaración. Por esto, el lugar más común para definir las variables globales es antes de la definición de ninguna función. Por defecto, una variable global es visible desde otro fuente. Para definir que existe una variable global que está definida en otro fuente tenemos que anteponer la palabra extern a su declaración. Esta declaración únicamente indica al compilador que se hará referencia a una variable declarada en un módulo distinto al que se compila. Un modificador muy importante es const. Con él se pueden definir variables cuyo valor debe permanecer constante durante toda la ejecución del programa. También se puede utilizar con argumentos de funciones. En este caso se indica que el argumento en cuestión es un parámetro y su valor no debe ser modificado. Si al programar la función, modificamos ese parámetro, el compilador nos indicará el error. 20
  • 21. #define EULER 2.71828 const double pi = 3.14159; double lcercle (const double r ) { return 2.0 * pi * r; } double EXP ( const double x ) { return pow (EULER, x ); } double sinh (const double x ) { return (exp(x) - exp(-x)) / 2.0; } Debemos fijarnos que en el ejemplo anterior pi es una variable, la cual no podemos modificar. Por ello pi sólo puede aparecer en un único fuente. Si la definimos en varios, al linkar el programa se nos generará un error por tener una variable duplicada. En el caso en que queramos acceder a ella desde otro fuente, debemos declararla con el modificador extern. 21
  • 22. CAPITULO 10. Vectores y Matrices. Un array (matriz o vector) es un conjunto finito y ordenado de elementos homogéneos. La propiedad “ordenado” significa que el elemento primero, segundo y tercero,…, enésimo de un array puede ser identificado. Los elementos del array son homogéneos, es decir, del mismo tipo de datos. Los array también se conocen como matrices-en matemáticas- y tablas- en cálculos financieros. En otras palabras un arreglo es una especie de variable que contiene muchos valores pero cada uno con una posición diferente. Un arreglo puede ser unidimensional o vectorial, bidimensional o matricial, o multidimensional. Vectores en C# Qué es un vector? Un vector (o arreglo unidimensional) es una estructura de datos en la cual se almacena un conjunto de datos de un mismo tipo. Es decir que un arreglo es una lista de n elementos que posee las siguientes características:    Se identifica por un único nombre de variable Sus elementos se almacenan en posiciones contiguas de memoria Se accede a cada uno de sus elementos en forma aleatoria 22
  • 23. MATRICES. Son arreglos bidimensionales, es una colección finita, homogénea y ordenada de datos. Una matriz está compuesta por filas y columnas, en la que se hace referencia a cada elemento por medio de dos índices. El primero de los índices se utiliza para indicar la fila y el segundo de los índices para indicar la columna. Declaración de una matriz: tipo_de_dato identificador [numFilas][numColumnas];; Dónde: tipo_de_dato: Es el tipo de datos que contendrá la matriz. Identificador: Es el nombre que le damos a la variable matriz y por el cual la referenciaremos en nuestro programa. [numFilas][numColumnas] : Específica el número de Filas y de columnas que tendrá la matriz El espacio que las matrices ocupan en memoria se reserva en el momento de realizar la declaración de los mismos. 23
  • 24. Ejemplo: int A[3][4]; // Declaración de una matriz de enteros de 3 filas y 4 columnas float B[6][2]; // Declaración de una matriz de reales de 6 filas y 2 columnas char C[4][10]; // Declamación de una matriz de caracteres de 4 filas y 10 columnas Inicialización de una Matriz Una matriz se pude inicializar para esto hay que agrupar entre {} cada fila. El formato a utilizar sería el siguiente: 1 2 3 1 tipo_de_dato identificador[ filas ][ columnas ] = { 2 { columnas de la fila 1 }, 3 { columnas de la fila 2 }, 4 ... , 5 { columnas de la última fila } 6 }; EJERCICIOS: Que rellene un array con los 100 primeros números enteros y los muestre en pantalla en orden descendente. #include <stdio.h> #include <stdlib.h> int main(void) { int x,tabla[100]; for (x=1;x<=100;x++) { tabla[x]=x; } 24
  • 25. for (x=100;x>=1;x--) { printf("%dn",tabla[x]); } system("PAUSE"); return 0; } Que lea 10 números por teclado, los almacene en un array y muestre la suma, resta, multiplicación y división de todos. #include <stdio.h> #include <stdlib.h> int main(void) { int x,tabla[10]; int sum,res,mul,div; for (x=0;x<10;x++) { printf("Introduzca númeron"); scanf("%d",&tabla[x]); } sum=tabla[0]; res=tabla[0]; mul=tabla[0]; div=tabla[0]; for (x=1;x<10;x++) { sum=sum+tabla[x]; res=res-tabla[x]; mul=mul*tabla[x]; div=div/tabla[x]; } printf("Suma: %dn",sum); printf("Resta: %dn",res); printf("Multiplicación: %dn",mul); printf("División: %dn",div); system("PAUSE"); return 0; 25
  • 26. EJERCICIOS RESUELTOS DURANTE EL PERIODO DE CLASES CONDICIONES IF, WHILE, DO WHILE, FOR, ETC: 1.- Diseñe un programa que me permita obtener las comisiones de ventas de la empresa XYZ, Bajo los siguientes condicionamientos si el valor de la venta es igual a >= 3000 y <=5000 el porcentaje es de 5%, >=5000 y <=8500 el porcentaje es de 7%; >=8500 y <=10000 el porcentaje es de 8% >10000 el porcentaje es de 10%; Visualice el valor total de ventas ingresadas y el total de comisiones entregadas el proceso se repite n veces.  Análisis del Programa: #include<stdio.h> LIBRERIAS #include<conio.h> main () { int a=1,b=0,oper; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA float c,p,v,s,t,f,g,r,q; do PROCESO DE REPETICION { clrscr(); LIMPIADO DE PANTALLA a=1; b=0; gotoxy(30,2);printf("COMISIONES DE VENTAS"); IMPRIMO VALORES Y LOS HAGO VALIDOS gotoxy(5,5);printf("Ingresar el valor de la venta:"); scanf("%f",&c); if((c>2999)&&(c<5001)) DECISION SENTENCIA { IF p=(c*5)/100; v=c+p; gotoxy(8,10);printf("La venta total es=%f",v); PROCESOS gotoxy(8,13);printf("La ganancia es=%f",p); } if((c>5000)&&(c<8499)) DECISION SENTENCIA { IF s=(c*7)/100; t=s+c; gotoxy(8,10);printf("La venta total es=%f",t); PROCESOS gotoxy(8,13);printf("La ganancia es=%f",s); } if((c>8500)&&(c<10001)) DECISION SENTENCIA { IF r=(c*8)/100; q=r+c; gotoxy(8,10);printf("La venta total es=%f",q); 26
  • 27. gotoxy(8,13);printf("La ganancia es=%f",r); } if(c>10000) DECISION SENTENCIA { IF f=(c*10)/100; g=f+c; gotoxy(8,10);printf("La venta total es=%f",g); PROCESOS gotoxy(8,13);printf("La ganancia es=%f",f); } gotoxy(30,20);printf("PRESS 1 para continuar o 0 abandonar"); scanf("%d",&oper); } while(oper==1); getch(); CERRAMO EL } PROGRAMA  CERRAMOS PROCESO DE REPETICION DOCUMENTACION: 27
  • 29. 2.- Diseñe un programa que me permita ingresar un número entero desde teclado de 1 al 7, y que me permita visualizar el nombre del día de la semana que corresponda.  Análisis del Programa: #include<stdio.h> LIBRERIAS #include<conio.h> main () { int d; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA d=1; clrscr(); gotoxy(10,2);printf("ingrese un dia de la semana"); IMPRIMO VALORES Y LOS HAGO VALIDOS scanf("%d", &d); do { PROCESO DE REPETICION switch (d) { case 1: gotoxy(10,5);printf("lunes"); break; case 2: gotoxy(10,5);printf("martes"); break; case 3: gotoxy(10,5);printf("miercoles"); break; case 4: gotoxy(10,5);printf("jueves"); break; case 5: gotoxy(10,5);printf("viernes"); break; case 6: gotoxy(10,5);printf("sabado"); break; case 7: gotoxy(10,5);printf("domingo"); break; default: gotoxy(10,5); printf("error"); } } while (d<=7); PROCESOS CASES CERRAMOS PROCESO DE REPETICION getch();} CERRAMO EL PROGRAMA 29
  • 31.  CORRIDO DEL PROGRAMA: 3.-Diseñe un programa que me permita ingresar 2 números por teclado y realizar la suma de los mismos.  ANALISIS DEL PROGRAMA #include<conio.h> LIBRERIAS #include<stdio.h> void main() { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int n1, n2, tot; clrscr(); gotoxy(33,3);printf("SUMA DE DOS NUMEROS"); gotoxy(5,5);printf("primer valor:");scanf("%d",&n1); IMPRIMO VALORES Y LOS HAGO VALIDOS gotoxy(5,7);printf("segundo numero:");scanf("%d",&n2); tot=n1+n2; gotoxy(7,9);printf("la respuesta es = %d",tot); getch(); CERRAMOS EL } PROGRAMA  DOCUMENTACION: 31
  • 32.  CORRIDO DEL PROGRAMA: 4.-Realice la suma de 2 números, siempre que el primer valor este entre 3 y 23, y el segundo este entre 5 y 17. #include<stdio.h> #include<conio.h> void main() { LIBRERIAS int a,b,suma,op; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA do { clrscr(); gotoxy(31,2); printf("suma de dos numeros"); 32
  • 33. do PROCESO DE REPETICION { gotoxy(37,5);printf(" "); gotoxy(10,5); printf("ingrese el primer numero==>");scanf("%d",&a); }while (a<3 || a>23); IMPRIMO VALORES Y LOS HAGO VALIDOS do PROCESO DE REPETICION { gotoxy(37,7); printf(" "); gotoxy(10,7); printf("ingrese el segundo numero==>");scanf("%d",&b); }while (b<5 || b>17); suma=a+b; Y LOS HAGO VALIDOS PROCESOS gotoxy(10,9); printf("la suma es==>%d",suma); gotoxy(10,11); printf("presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); Cerramos EL } PROGRAMA  IMPRIMO VALORES IMPRIMO VALORES Y LOS HAGO VALIDOS DOCUMENTACION: 33
  • 34.  CORRIDO DEL PROGRAMA: 6.-Diseñe un programa que me permita ingresar 3 números enteros desde teclado que corresponden a 3 notas las mismas que deben estar entre 1 y 10, obtenga el promedio correspondiente y determine su equivalencia.  Si el promedio es mayor o igual a 7, está aprobado.  Si el promedio es mayor o igual a 5 y  Menor que 7 esta suspenso  Si el promedio es menor que 5 esta reprobado  ANALISIS DEL PROGRAMA #include<stdio.h> #include<conio.h> main() LIBRERIAS 34
  • 35. { clrscr(); VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int n1,n2,n3,p,s; gotoxy(8,3); printf("promedios"); IMPRIMO VALORES gotoxy(5,5); printf("ingrese la nota1: "); scanf("%d",&n1); Y LOS HAGO VALIDOS if(n1>10) { gotoxy(5,7);printf("nota incorrecta"); } else { gotoxy(5,9); printf("ingrese la nota2: "); scanf("%d",&n2); } if(n2>10) { SENTENCIAS IF gotoxy(5,11);printf("nota incorrecta"); } else { gotoxy(5,13); printf("ingrese la nota3: "); scanf("%d",&n3); } if(n3>10) { gotoxy(5,15);printf("nota incorrecta"); } s=n1+n2+n3; PROCESOS p=s/3; gotoxy(5,17); printf("su pronedio es: %d",p ); if((p>=7)&&(p<=10)) {gotoxy(5,18);printf("Aprueba");} if((p<=6)&&(p>=5)) {gotoxy(5,18); printf("Suspenso");} if((p<=4)&&(p>=0)) {gotoxy(5,18); printf("Reprueba");} getch(); }  Cerramos EL PROGRAMA DOCUMENTACION: 35
  • 36. 36
  • 37.  CORRIDO DEL PROGRAMA: 7.- Diseñe un programa que me permita ingresar el nombre de una persona y la edad de la misma que debe estar entre 3 y 85, para obtener las siguientes equivalencias:  Si la edad está entre 3 y 5 debe visualizarse: nombre, “es un bebé”  Si la edad es > 5 y <13 debe visualizarse: nombre, “es un niño”  Si la edad es > 13 y ≤ 21 debe visualizarse: nombre, “es un adolescente”  Si la edad es > 21 y ≤ 60 debe visualizarse: nombre, “es un adulto”  Si la edad es > 60 debe visualizarse: nombre, “es un adulto mayor” El programa se repite tantas veces como el usuario lo desee.  ANALISIS DEL PROGRAMA #include<stdio.h> LIBRERIAS #include<conio.h> #include<string.h> void main() { int ed,op; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA char nombre[15]; do ABRIMOS EL DO { clrscr(); gotoxy(31,1);printf("Saber edad y equivalencia"); flushall(); IMPRIMO VALORES gotoxy(10,3);printf("Ingrese nombre: ");gets(nombre); Y LOS HAGO VALIDOS 37
  • 38. do { gotoxy(27,4);printf(" "); gotoxy(10,4);printf("Ingrese la edad: ");scanf("%d",&ed); }while(ed>85 || ed<3); if(ed>=3 && ed<=5) { gotoxy(10,7);printf("Es un bebe"); } else { if(ed>5 && ed<=13) { gotoxy(10,7);printf("Ni¤o"); } else SENTENCIAS IF { if(ed>15 && ed<=21) { gotoxy(10,7);printf("Adolecente"); } else { if(ed>21 && ed<=61) { gotoxy(10,7);printf("Adulto"); } else { gotoxy(10,7);printf("Adulto Mayor"); } } } } gotoxy(10,6);puts(nombre); gotoxy(10,10);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); CERRAMOS EL DO getch(); } Cerramos EL PROGRAMA  DOCUMENTACION: 38
  • 39. 39
  • 40.  COFICICACION DEL PROGRAMA 8.- Diseñe un programa que me permita simular la venta de productos en una factura, de la cual necesitamos ingresar el nombre del producto, la cantidad, precio unitario y calcular el precio total. El programa se repite n veces según los productos que el usuario desee ingresar. 40
  • 41.  ANALISIS DEL PROGRAMA #include<stdio.h> LIBRERIAS #include<conio.h> main() { int op,j,a=4,b=4,c=4,d=4,v=0; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN float cant,vuni,vtotal,iva,s,sub,totalp; NUESTRO PROGRAMA char p[15]; clrscr(); gotoxy(23,1); printf("SIMULACION DE FACTURA"); IMPRIMO VALORES gotoxy(5,4); printf("Producto"); Y LOS HAGO VALIDOS gotoxy(20,4); printf("Cantidad"); gotoxy(34,4); printf("Precio Unitario"); gotoxy(55,4); printf("Valor"); do ABRIMOS EL DO { flushall(); a=a+1;gotoxy(5,a);gets(p); b=b+1;gotoxy(23,b);scanf("%2f",&cant); c=c+1;gotoxy(39,c);scanf("%2f",&vuni); IMPRIMO VALORES vtotal=cant*vuni; LOS HAGO VALIDOS Y PROCESOS d=d+1;gotoxy(55,d);printf("%.2f",vtotal); v=v+vtotal; gotoxy(2,24);printf("presione 1 para ingresar otro producto o 0 para finalizar la factura: ");scanf("%d",&op); SENTENCIAS IF }while(op==1); CERRAMOS EL DO j=v; sub=j; gotoxy(45,21); printf("subtotal: %.2f",sub); iva=(sub*12)/100; PROCESOS gotoxy(50,22); printf("iva: %.2f",iva); vtotal=sub+iva; gotoxy(40,23); printf("valor a pagar: %.2f",vtotal); getch(); Cerramos EL } PROGRAMA  DOCUMENTACION: 41
  • 43. 9.-Diseñe un programa que me permita calcular el promedio general de las notas de distintas materias correspondientes al 2do semestre de docencia en informática, en donde cada uno de las notas ingresadas deben estar entre 1 y 10.  ANALISIS: #include<stdio.h> LIBRERIAS #include<conio.h> main() { int c=5,n1,n2,n3,op; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN float prom; NUESTRO PROGRAMA clrscr(); gotoxy(27,2);printf("Facultad de Ciencias Humanas"); gotoxy(30,3);printf("Segundo Informatica"); gotoxy(8,5); printf("Modulos nota 1nota 2 nota 3promedio"); gotoxy(5,6); printf("Programacion 1"); gotoxy(5,7); printf("Fisica 2"); IMPRIMO VALORES gotoxy(5,8); printf("Matematica Basica"); Y LOS HAGO VALIDOS gotoxy(5,9); printf("M. de la Investigacion"); gotoxy(5,10);printf("Trabajo en Equipo"); gotoxy(5,11);printf("Realidad Nacional"); gotoxy(5,12);printf("Ntics"); do ABRIMOS EL DO 43
  • 44. { c=c+1; do { gotoxy(39,c);printf(" "); gotoxy(39,c);scanf("%d",&n1); } while (n1>10); do { gotoxy(49,c);printf(" "); gotoxy(49,c);scanf("%d",&n2); } while (n2>10); do { gotoxy(60,c);printf(" "); gotoxy(60,c);scanf ("%d",&n3); } while (n3>10); SENTENCIA WHILE Y PROCESOS prom=(n1+n2+n3)/3; gotoxy(70,c);printf("%.2f",prom); gotoxy(5,15);printf("presione 1 para continuar o 0 para salir");scanf("%d",&op); } while (op==1); CERRAMOS EL DO getch(); }  CERRAMOS EL PROGRAMA DOCUMENTACION: 44
  • 45. 45
  • 46.  CORRIDO DEL PROGRAMA: 10.-Realice un programa en C++ que me permita obtener el liquido a recibir de un empleado bajo los siguientes parámetros: El empleado percibe un salario minimo vital el mismo que depende de su categoría, existen 3 posibles alterantivas, este datos deberá ser ingresada al inicio del programa conjuntamente con el nombre del empleado:  Categoria 1 180,00  Categoría 2 250,00  Categoría 3 380,00 A este salario minimo vital se le incluye algunos rubros que son: 1. Horas extras, las mimas que no pueden exceder 8, cada hora extra cuesta Usd. 1,80. 2. Bono familiar la misma que esta condicionada. Si el empleado tiene mas de dos hujos se le paga Usd. 4,50 por cada hijo caso contrario se le reconoce Usd. 6,20 por cada hijo. 3. Obtenga el valor del IESS que es el 11,5 % del nominal 4. Se le descuenta el 2% del nominal como aporte a la asociación 5. Obtenga los valores correspondientres de ingresos, egresos y total a recibir. El programa se genera n veces.  Análisis del Programa: #include<stdio.h> LIBRERIAS 46
  • 47. #include<conio.h> main () { float x=180, y=250, z=380,s,iess,i=11.5, dcto,a=2,p=1.80,ex,hex,j=4.50,k=6.20,b,in,eg,t; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int c,h,op; char n[50]; do PROCESO DE REPETICION { flushall(); clrscr(); gotoxy(31,3); printf("INGRESO DE DATOS"); gotoxy(2,5); printf("Ingrese su nombre: ");flushall(); gets(n); do { gotoxy(2,8); printf("Escoja su categoria: 1, 2 o 3: "); scanf("%d",&c); PROCESO DO } WHILE while(c>3 || c<1); VALIDANDO gotoxy(2,11); printf("Cantidad de hijos registrados: "); scanf("%d",&h); TERMINOS do { gotoxy(2,14);printf("Horas extras registradas: "); scanf("%f",&hex); } while(hex<1 || hex>8); clrscr(); gotoxy(5,3); printf("********************ROL DE PAGOS********************"); gotoxy(5,5); printf("Empleado: %s",n); gotoxy(5,6); printf("Corresponde: Septiembre 2013"); gotoxy(5,7); printf("Dias laborados: 30 dias"); IMPRIMO VALORES Y gotoxy(5,8); printf("**************************"); gotoxy(10,10); printf("Ingresos"); LOS HAGO VALIDOS gotoxy(46,10); printf("Egresos"); gotoxy(5,12); printf("Sueldo nominal "); if(c==1) { s=x; gotoxy(21,12); printf("%.2f",s); DECISION SENTENCIA } IF if(c==2) { s=y; 47
  • 48. gotoxy(21,12); printf("%.2f",s); } if(c==3) { s=z; gotoxy(21,12); printf("%.2f",s); } iess=(s*i)/100; gotoxy(38,12); printf("Seguro: "); gotoxy(52,12); printf("%.2f",iess); PROCESOS dcto=(s*a)/100; gotoxy(38,13); printf("Dcto. Asoc.: "); gotoxy(52,13); printf("%.2f",dcto); ex=(hex*p); gotoxy(5,13); printf("Horas extras: "); gotoxy(21,13);printf("%.2f",ex); gotoxy(5,14); printf("Bono Familiar: "); if (h>2) { b=(h*j); gotoxy(21,14);printf("%.2f",b); } DECISION SENTENCIA IF if (h<3) { b=(h*k); gotoxy(21,14);printf("%.2f",b); } in=(s+ex+b); gotoxy(5,18); printf("Total Ingresos: "); gotoxy(21,18);printf("%.2f",in); PROCESOS eg=(iess+dcto); gotoxy(38,18);printf("Total Egresos: "); 48
  • 49. gotoxy(52,18);printf("%.2f",eg); t=(in-eg); gotoxy(38,24);printf("TOTAL A RECIBIR: "); gotoxy(55,24);printf("%.2f",t); gotoxy(37,23);printf("*************************"); gotoxy(37,25);printf("*************************"); gotoxy(5,23); printf("presione 1 para regresar o "); gotoxy(5,24); printf("presione 0 para salir: "); scanf("%d",&op); } while (op==1); getch(); }  SENTENCIA DO WHILE Y PROCESOS CERRAMOS EL PROGRAMA DOCUMENTACION : 49
  • 50. 50
  • 52. 11.- Diseñe un programa que me permita imprimir un borde de pantalla  Análisis del Programa: #include<stdio.h> #include<conio.h> main() { int i,limite,fila=6,op; LIBRERIAS VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA fila=6; LIMPIADO DE PANTALLA clrscr(); //bordes for (i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for (i=1;i<=24;i++) { gotoxy(1,i);printf("*"); SENTENCIA FOR SENTENCIA FOR 52
  • 54. 12.- Diseñe un programa que me permita visualizar la serie de los números pares y los impares que existen hasta el número límite ingresado desde teclado.  Análisis del Programa: #include<stdio.h> LIBRERIAS #include<conio.h> main() { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int i,limite,fila=6,op; do PROCESO DE REPETICION { fila=6; clrscr(); LIMPIADOR DE PANTALLA //bordes for (i=1;i<=80;i++) { SENTENCIA FOR gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for (i=1;i<=24;i++) SENTENCIA FOR { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } //serie de pares VALIDACION DE LOS TERMINOS ESTABLECIDAS EN gotoxy(5,2);printf("ingrese el limite: ");scanf("%d",&limite); NUESTRO PROGRAMA gotoxy(20,4);printf("Pares:"); for (i=2;i<=limite;i+=2) { gotoxy(23,fila);printf("%d",i); fila=fila+1; } fila=6; SENTENCIA FOR gotoxy(42,4);printf("Impares:"); for (i=1;i<=limite;i+=2) { gotoxy(46,fila);printf("%d",i); fila=fila+1; } 54
  • 55. gotoxy(60,21);printf("presione:"); gotoxy(60,22);printf("1 para continuar"); gotoxy(60,23);printf("0 para salir: "); scanf("%d",&op); } while(op==1); getch(); }  CERRAMOS EL PROCESOS DE REPETICION CERRAMOS EL PROGRAMA DOCUMENTACION 55
  • 57. 13.- Realizar un programa y visualizar los números primos.  ANÁLISIS DEL PROGRAMA: #include<stdio.h> LIBRERIAS #include<conio.h> #include<string.h> main() VALIDACION DE LOS TERMINOS ESTABLECIDAS { EN NUESTRO PROGRAMA int i, j, fla=7, lim, cnt=0, resul, op; do PROCESO DE REPETICION { fla=7; clrscr(); gotoxy(35,3);printf("NUMEROS PRIMOS"); for(i=1;i<=80;i++) { SENTENCIA FOR gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); SENTENCIA FOR } gotoxy(5,8);printf("ingrese limite: ");scanf("%d",&lim); for(i=1;i<=lim;i++) { cnt=0; for(j=1;j<=i;j++) { resul=i%j; if(resul==0) { DECISION SENTENCIA cnt=cnt+1; } IF } if(cnt==2) { gotoxy(40,fla);printf("%d",i); fla=fla+1; } CERRAMOS EL } PROGRAMA  CORRIDO DE PROGRAMA 57
  • 58. 14.- Diseñe un programa que me permita visualizar la factorial de un número ingresado desde teclado.  ANÁLISIS DEL PROGRAMA: #include<stdio.h> LIBRERIAS #include<conio.h> main() { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int i,j,m,l,f=1,op; do PROCESO DE REPETICION { clrscr(); f=1; //borde de pantalla m=10; for (i=1;i<=80;i++) { gotoxy(i,1); printf("*"); gotoxy(i,24);printf("*"); SENTENCIA FOR } for (i=1;i<=24;i++) { gotoxy(1,i); printf("*"); 58
  • 59. gotoxy(80,i);printf("*"); } gotoxy(31,3);printf("FACTORIALES"); IMPRIMO VALORES Y LOS gotoxy(15,7);printf("ingrese el limite: ");scanf("%d",&l); HAGO VALIDOS for (j=1;j<=l;j++) { SENTENCIA FOR f=f*j; Y SUS PROCESOS gotoxy(20,m);printf("El factorial de: %d = %d",j,f); m=m+1; } gotoxy(15,22);printf("presione 1 para continuar o 0 para salir: ");scanf("%d",&op); } while (op==1); getch(); }  CERRAMOS EL PROGRAMA DOCUMENTACION 59
  • 61. 16.-Diseñe un programa que me permita ejercer la tabla de multiplicación de cualquier factor imprimido desde teclado y por cualquier limite impreso desde teclado, el programa se genera n veces, diseñe el borde de la pantalla.  ANÁLISIS DEL PROGRAMA: #include<stdio.h> LIBRERIAS #include<conio.h> main () { int fac,lim,i,n,m,j,op ; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA do { PROCESO DE REPETICION clrscr(); //borde de pantalla m=9 for (i=1;i<=80;i++) { gotoxy(i,1); printf("*"); SENTENCIA FOR gotoxy(i,24);printf("*"); } BORDE DE PANTALLA for (i=1;i<=24;i++) { gotoxy(1,i); printf("*"); gotoxy(80,i);printf("*"); } //tabla de multiplicar gotoxy(31,3); printf("TABLAS DE MULTIPLICAR"); gotoxy(10,5); printf("Factor: ");scanf("%d",&fac); IMPRIMO VALORES Y LOS HAGO VALIDOS gotoxy(10,7); printf("Limite: ");scanf("%d",&lim); for(j=1;j<=lim;j++) { n=fac*j; gotoxy(19,m); printf("%d",fac); gotoxy(21,m); printf("*"); SENTENCIA FOR gotoxy(23,m); printf("%d",j); Y PROCESOS DE LA TABLA DE gotoxy(25,m); printf("="); MULTUIPLICAR gotoxy(27,m); printf("%d",n); m=m+1; } CERRAMOS gotoxy(8,22); printf("presione 1 para regresar o 0 para salir: ");scanf("%d",&op); PROCESO DE } REPETICION while (op==1); getch(); }  CERRAMOS EL PROGRAMA DOCUMENTACION 61
  • 62. 62
  • 63.  CORRIDO DEL PROGRAMA 17.- Diseñe un programa en c++ que me permita visualizar los números primos con repetición y el borde.  ANÁLISIS DEL PROGRAMA: #include<conio.h> LIBRERIAS #include<stdio.h> main() { int i=0,j=0,lt,c,res=0,op=1,nc=0; do PROCESO DE REPETICION { clrscr(); VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA LIMPIADOR DE PANTALLA for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(79,i);printf("*"); } SENTENCIA FOR PARA REALIZAR EL BORDE 63
  • 64. for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } gotoxy(29,2);printf("NUMEROS PRIMOS"); gotoxy(6,4);printf("INGRESE EL LIMITE : ");scanf("%d",&lt); gotoxy(6,6);printf("1"); c=2; for(i=2;i<=lt;i++) SENTENCIA FOR { for(j=1;j<=c;j++) { if(i%j==0) { nc=nc+1; } SENTENCIA IF } if(nc==2) { printf("%6d",i); } nc=0; c=c+1; } gotoxy(2,23),printf("REPETIR 1 Y 0 PARA SALIR : ");scanf("%d",&op); } while(op==1); CERRAMOS EL getch(); } PROGRAMA  VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA CERRAMOS PROCESO DE REPETICION DOCUMENTACION 64
  • 66. 18.- Diseñe un programa que me permita generar cualquier seria de números.  ANÁLISIS DEL PROGRAMA: #include<conio.h> LIBRERIAS #include<stdio.h> void main() { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int limite,i,fla,op; do PROCESO DE REPETICION { clrscr(); for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); SENTENCIA FOR PARA } REALIZAR EL BORDE for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } flushall(); gotoxy(25,5);printf("Series"); IMPRIMO VALORES Y gotoxy(15,6);printf("Ingrese limite: ");scanf("%d",&limite); LOS HAGO VALIDOS fla=6; 66
  • 67. for(i=2;i<=limite;i+=2) { gotoxy(20,fla+1);printf("%d",i); fla=fla+1; SENTENCIA FOR Y SUS } RESPECTIVOS PROCESOS fla=7; for(i=1;i<=limite;i+=2) { gotoxy(40,fla);printf("%d",i); fla=fla+1; } gotoxy(15,20);printf("Desea salir 1/0: ");scanf("%d",&op); }while(op==1); CERRAMOS EL getch(); } PROGRAMA  CERRAMOS PROCESO DE REPETICION DOCUMENTACION 67
  • 69. 19.- Diseñe un programa que me permita generar una serie de números, en donde el numerados es cualquier factor ingresado desde teclado, y el numerador es la serie de los números impares.  ANÁLISIS DEL PROGRAMA: #include<stdio.h> LIBRERIAS #include<conio.h> void main () { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int i,l,j,c,d,s,p,op,fa; do PROCESO DE REPETICION { clrscr(); for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); SENTENCIA FOR PARA } REALIZAR EL BORDE for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } gotoxy(16,2);printf("SERIE DE NUMEROS NUMERADOR IMPRIMO VALORES Y CUALQUIER,DENOMINADOR IMPAR"); LOS gotoxy(10,3);printf("Ingrse el limite: ");scanf("%d",&l); HAGO VALIDOS gotoxy(10,4);printf("ingrese el factor:");scanf("%d",&fa); c=0; d=1; for(i=1;i<=l;i++) { c=c+3; gotoxy(5,6+i);printf("%d",c); SENTENCIA FOR Y SUS d=d+2; RESPECTIVOS PROCESOS gotoxy(13,6+i);printf("%d",d); gotoxy(9,6+i);printf("/"); } CERRAMOS gotoxy(10,20);printf("Desea continuar 1 caso contario 0: ");scanf("%d",&op); PROCESO DE }while(op==1); REPETICION getch(); CERRAMOS EL } PROGRAMA  DOCUMENTACION 69
  • 71. 20.- Realice un programa que me permita general la siguiente serie de datos: N= 5 Factor impar como numerador Factorial como denominador  ANÁLISIS DEL PROGRAMA: #include<conio.h> LIBRERIAS #include<stdio.h> void main() { int s,f,i,d,j,op; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA float factorial; do PROCESO DE REPETICION { clrscr(); LIMPIADOR DE PANTALLA for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) { SENTENCIA FOR PARA REALIZAR EL BORDE 71
  • 72. gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } IMPRIMO VALORES Y gotoxy(15,2);printf("SERIE DE NUMEROS CON NUMERADOR LOS HAGO VALIDOS IMPAR E FACTORIAL DENOMINADOR"); gotoxy(10,3);printf("Ingrse el limite: ");scanf("%d",&s); do { PROCESO DE VALIDACION CON gotoxy(32,4);printf(" "); DO WHILE gotoxy(10,4);printf("ingrese el factor:");scanf("%d",&f); } while(f%2==0); factorial=1; for(i=1;i<=s;i++) { SENTENCIA FOR Y SUS factorial=factorial*i; gotoxy(5,6+i);printf("%d",f); RESPECTIVOS PROCESOS f=f+2; gotoxy(13,6+i);printf("%4.0f",factorial); gotoxy(9,6+i);printf("/"); } CERRAMOS gotoxy(10,20);printf("Desea continuar 1 caso contario 0: ");scanf("%d",&op); PROCESO DE }while(op==1); REPETICION getch(); CERRAMOS EL } PROGRAMA  DOCUMENTACION 72
  • 74. 21.- Generar n elementos de la siguiente serie, cualquier factor ingresando desde teclado como numerador, el denominador números pares  ANÁLISIS DEL PROGRAMA: #include<stdio.h> LIBRERIAS #include<conio.h> void main () { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int i,l,j,c,d,s,p,op,fa; do PROCESO DE REPETICION { clrscr(); for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); SENTENCIA FOR PARA gotoxy(i,24);printf("*"); REALIZAR EL BORDE } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } 74
  • 75. gotoxy(16,2);printf("SERIE DE NUMEROS NUMERADOR IMPRIMO VALORES Y CUALQUIER,DENOMINADOR PAR"); gotoxy(10,3);printf("Ingrse el limite: ");scanf("%d",&l); LOS HAGO VALIDOS gotoxy(10,4);printf("ingrese el factor:");scanf("%d",&fa); c=0; d=0; for(i=1;i<=l;i++) { SENTENCIA FOR Y SUS c=c+3; gotoxy(5,6+i);printf("%d",c); RESPECTIVOS PROCESOS d=d+2; gotoxy(13,6+i);printf("%d",d); gotoxy(9,6+i);printf("/"); } CERRAMOS gotoxy(10,20);printf("Desea continuar 1 caso contario 0: ");scanf("%d",&op); PROCESO }while(op==1); DE REPETICION CERRAMOS EL getch(); } PROGRAMA  DOCUMENTACION 75
  • 76.  CORRIDO DEL PROGRAMA 22.- Genere una serie de datos que lleve por numerador el factorial y por denominador la serie de Fibonacci. #include<conio.h> LIBRERIAS #include<stdio.h> main() { int i, limit, fibon=0, colum=5, b=1, c=0, fac=1, op; do PROCESO DE REPETICION { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA 76
  • 77. fibon=0, colum=5, b=1, c=0, fac=1; clrscr(); for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); SENTENCIA FOR PARA } REALIZAR EL BORDE for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } gotoxy(17,3);printf("SERIE NUMERADOR FACTORIAL IMPRIMO VALORES Y LOS Y DENOMINADOR FIBONACCI"); HAGO VALIDOS gotoxy(4,5);printf("numero a visualizar: ");scanf("%d",&limit); for(i=1;i<=limit;i++) { gotoxy(colum,9);printf("%d",fibon); fibon=b+c; SENTENCIA FOR Y SUS b=c; RESPECTIVOS PROCESOS c=fibon; gotoxy(colum,8);printf("-"); gotoxy(colum,7);printf("%d",fac); fac=fac*i; colum=colum+5; } CERRAMOS gotoxy(3,22);printf("PRESIONE 1 PARA REPETIR LA SERIE O 0 PARA PROCESO FINALIZAR>> ");scanf("%d",&op); DE REPETICION } while(op==1); getch(); CERRAMOS EL } PROGRAMA  DOCUMENTACION 77
  • 79. 23.- Genere la siguiente serie de datos primos en el numerador e impares en el denominador.  ANÁLISIS DEL PROGRAMA: #include<stdio.h> #include<conio.h> LIBRERIAS #include<string.h> main() { VALIDACION DE LOS TERMINOS int i, j, np, cot=0, c=5, resul, op, colum=15, imp=1, aux; ESTABLECIDAS EN NUESTRO PROGRAMA do PROCESO DE REPETICION { imp=1; colum=15; c=10; clrscr(); gotoxy(16,3);printf("SERIE NUMERADOR PRIMOS DENOMINADOR IMPARES"); for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } SENTENCIA FOR PARA for(i=1;i<=24;i++) REALIZAR EL BORDE { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } gotoxy(3,5);printf("Limite: ");scanf("%d",&np); IMPRIMO VALORES Y LOS HAGO VALIDOS gotoxy(10,7);printf("1"); gotoxy(8,6);printf("Serie: "); aux=0; for(i=1;i<=(2*np);i++) { if(aux==np) {break; } cot=0; SENTENCIA FOR Y SU for(j=1;j<=i;j++) RESPECTIVOS PROCESOS { resul=i%j; if(resul==0) { cot=cot+1; } } if(cot==2) 79
  • 80. { gotoxy(colum,7);printf("%d",i); aux=aux+1; gotoxy(colum,8);printf("-"); colum=colum+5; gotoxy(c,9);printf("%d",imp); imp=imp+2; c=c+5; } DECISION SENTENCIA IF Y SUS PROCESOS } gotoxy(3,23);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&op); } while(op==1); CERRAMOS EL getch(); } PROGRAMA  CERRAMOS PROCESO DE REPETICION DOCUMENTACION 80
  • 82. 24.-Diseñe un programa que me presente un menú de opciones con las operaciones básicas, estas son suma, resta, multiplicación, división y una opción para salir del programa.  ANÁLISIS DEL PROGRAMA: #include<conio.h> #include<stdio.h> LIBRERIAS #include<stdlib.h> #include<math.h> void borde() { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int i; clrscr(); LIMPIADOR DE PANTALLA 82
  • 83. for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void main() { int op,col=8,l,i; float a,p,nu,s,r,c,m,c1,di,d,dv,e; clrscr(); do PROCESO DE REPETICION { SENTENCIA FOR PARA REALIZAR EL BORDE VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA LLAMAMOS A LA FUNCION BORDE borde(); gotoxy(32,3);printf("OPERACIONES BASICAS"); gotoxy(5,5);printf("1.Suma"); gotoxy(5,7);printf("2.Resta"); IMPRIMO VALORES Y LOS HAGO VALIDOS gotoxy(5,9);printf("3.Multiplicaci¢n"); gotoxy(5,11);printf("4.Divisi¢n"); PARA EMPEZAR HACER EL MENU gotoxy(5,13);printf("5.Salir"); gotoxy(5,22);printf("Que opcion desea realizar: "); scanf("%d",&op); switch(op) { case 1: clrscr(); borde(); SENTENCIA CASE, FOR Y LA IMPRESIÓN DE SUS gotoxy(33,3);printf("SUMA"); PROCESOS gotoxy(5,5);printf("Cuantos numeros desea sumar: "); scanf("%d",&l); for(i=1;i<=l;i++) { gotoxy(5,6);printf("Ingrese los numeros: ");scanf("%f",&nu); s=s+nu; 83
  • 84. } gotoxy(col,8);printf("La suma es = %f",s); break; case 2: clrscr(); SENTENCIA CASE, FOR Y LA IMPRESIÓN DE SUS borde(); PROCESOS gotoxy(33,3);printf("RESTA"); gotoxy(5,5);printf("Ingrese la primera cantidad: "); scanf("%f",&c); gotoxy(5,6);printf("Ingrese la segunda cantidad: "); scanf("%f",&c1); if(c<=c1) { r=c1-c; gotoxy(col,12);printf("Resta = %f",r); } DECISION SENTENCIA else IF Y SUS PROCESOS { r=c-c1; gotoxy(col,12);printf("Resta = %f",r); } CERRAMOS EL CASE break; case 3: clrscr(); borde(); SENTENCIA CASE Y LA gotoxy(32,3);printf("MULTIPLICACION"); IMPRESIÓN DE SUS gotoxy(5,5);printf("Ingrese el producto 1: ");scanf("%f",&p); PROCESOS gotoxy(5,7);printf("Ingrese el producto 2: ");scanf("%f",&nu); m=p*nu; gotoxy(col,13);printf("Multiplicaci¢n = %f",m); break; CERRAMOS EL CASE case 4: clrscr(); borde(); gotoxy(35,3);printf("DIVISION"); gotoxy(5,5);printf("Ingrese el dividendo: ");scanf("%f",&dv); SENTENCIA CASE Y LA gotoxy(5,6);printf("Ingrese el divisor: ");scanf("%f",&di); IMPRESIÓN DE SUS d=dv/di; PROCESOS gotoxy(col,12);printf("La division = %f",d); break; case 5: 84
  • 85. clrscr(); borde(); exit(0); CERRAMOS EL CASE break; } gotoxy(3,23);printf("1 PARA VOLVER AL MENU DE DATOS 0 PARA FINALIZAR: ");scanf("%d",&op); } while(op==1); getch(); CERRAMOS EL } PROGRAMA  CERRAMOS PROCESO DE REPETICION DOCUMENTACION: 85
  • 86. 86
  • 88. 25.- Realice un menú en el cual se visualice las 6 operaciones básicas: suma, resta, multiplicación, división, potenciación y radicación, con sus respectivas validaciones.  ANÁLISIS DEL PROGRAMA: #include<conio.h> #include<stdio.h> LIBRERIAS #include<stdlib.h> #include<math.h> void borde() { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int i; clrscr(); for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } SENTENCIA FOR PARA for(i=1;i<=24;i++) REALIZAR EL BORDE { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void main() 88
  • 89. { VALIDACION DE LOS TERMINOS int i,a,p,num,exp,resul,b,op,opc,aux=0,s1,s2,s3,s4,d,val, ESTABLECIDAS EN NUESTRO PROGRAMA sum,min,sus,res,mult1,mult2,pro,di,div,coc; float resp,f; do PROCESO DE REPETICION { clrscr(); { borde(); gotoxy(20,3);printf("<>LAS SEIS OPERACIONES BASICAS>>"); gotoxy(10,5);printf("1.- SUMA"); gotoxy(10,7);printf("2.- RESTA"); gotoxy(10,9);printf("3.- MULTIPLICACION"); IMPRIMO VALORES Y LOS gotoxy(10,11);printf("4.- DIVISION"); HAGO VALIDOS gotoxy(10,13);printf("5.- RAIZ CUADRADA"); PARA EMPEZAR HACER gotoxy(10,15);printf("6.- POTENCIACION"); EL MENU gotoxy(10,17);printf("7.- SALIR"); do { gotoxy(38,21);printf(" "); VALIDAR CON LA SENTENCIA gotoxy(10,21);printf("Que opcion desea realizar>> "); WHILE scanf("%d",&op); }while(op>7); switch(op) { case 1: do { clrscr(); borde(); gotoxy(33,3);printf("SUMA"); SENTENCIA CASE Y LA gotoxy(5,5);printf("Ingrese la primera cantidad>>");scanf("%d",&s1); IMPRESIÓN DE SUS gotoxy(5,7);printf("Ingrese la segunda cantidad>>");scanf("%d",&s2); PROCESOS gotoxy(5,9);printf("Ingrese la tercera cantidad>>");scanf("%d",&s3); gotoxy(5,11);printf("Ingrese la cuarta cantidad>>");scanf("%d",&s4); sum=s1+s2+s3+s4; gotoxy(12,13);printf("suma>> %d",sum); gotoxy(12,17);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc); }while(opc==1) ; break; case 2: do { clrscr(); borde(); CERRAMOS EL CASE 89
  • 90. gotoxy(33,3);printf("RESTA"); gotoxy(5,5);printf("Ingrese el minuendo:");scanf("%d",&min); do { gotoxy(27,7);printf(" "); gotoxy(5,9);printf("ingrse el sustraendo:");scanf("%d",&sus); }while(min<sus); res=min-sus; gotoxy(25,12);printf("la resta es>> %d",res); gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc); }while(opc==1) ; CERRAMOS EL CASE break; case 3: do { clrscr(); borde(); gotoxy(33,3);printf("MULTIPLICACION"); gotoxy(5,5);printf("ingrese el primer valor:");scanf("%d",&mult1); gotoxy(5,7);printf("ingrese el segundo valor:");scanf("%d",&mult2); pro=mult1*mult2; gotoxy(12,11);printf("multiplicacion>> %d",pro); gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc); }while(opc==1) ; CERRAMOS EL CASE break; case 4: do { LIMPIADOR DE PANTALLA clrscr(); borde(); gotoxy(33,3);printf("DIVISION"); gotoxy(5,5);printf("ingrese el dividendo:");scanf("%d",&di); do { gotoxy(27,7);printf(" "); gotoxy(5,9);printf("ingrse el divisor:");scanf("%d",&div); }while(di<div); coc=di/div; gotoxy(12,11);printf("respuesta>> %d",coc); gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc); }while(opc==1) ; break; CERRAMOS EL CASE SENTENCIA CASE Y LA IMPRESIÓN DE SUS PROCESOS SENTENCIA CASE Y LA IMPRESIÓN DE SUS PROCESOS SENTENCIA CASE Y LA IMPRESIÓN DE SUS PROCESOS 90
  • 91. case 5: do PROCESO DE REPETICION { clrscr(); borde(); LLAMAMOS A LA FUNCION BORDE gotoxy(33,3);printf("RAIZ CUADRADA"); gotoxy(5,5);printf("ingrese el valor:");scanf("%d",&val); SENTENCIA CASE Y LA resp=sqrt(val); IMPRESIÓN DE SUS gotoxy(12,11);printf("respuesta>> %f",resp); PROCESOS gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc); }while(opc==1) ; break; CERRAMOS CASE case 6: do PROCESOS DE REPETICION { clrscr(); borde(); gotoxy(33,3);printf("POTENCIACION"); SENTENCIA CASE Y LA IMPRESIÓN DE SUS gotoxy(5,5);printf("ingrese la base:");scanf("%d",&b); PROCESOS gotoxy(5,7);printf("ingrese el numero a exponer:");scanf("%d",&exp); resul=b; for(i=1;i<=exp-1;i++) { PROCESO FOR resul=resul*b; Y PROCESOS gotoxy(12,11);printf("respuesta>> %d",resul); } CERRAMOS PROCESO DE gotoxy(18,19);printf("PRESIONE 1 PARA REPETIR REPETICION EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc); }while(opc==1) ; break; CERRAMOS CASE case 7: exit; SALIR TOTALMENTE DEL PROGRAMA break; } } CERRAMOS PROCESO DE gotoxy(18,22);printf("DESEA VOLVER AL REPETICION MENU PRINCIPAL 1/0: ");scanf("%d",&aux); } while(aux==1); getch(); CERRAMOS EL PROGRAMA } 91
  • 93. 93
  • 94. 94
  • 96. 26.- Realice un menú de las áreas y perímetros de las 4 figuras básicas: circulo, cuadrado, triangulo y rectángulo.  ANÁLISIS DEL PROGRAMA: #include<conio.h> #include<stdio.h> LIBRERIAS #include<stdlib.h> void borde() { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int i; clrscr(); for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); SENTENCIA FOR PARA } REALIZAR EL BORDE for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void main() { 96
  • 97. VALIDACION DE LOS TERMINOS int i, l,a,p, op,opc,aux=0,ba,al,l1,l2,l3,r,d; ESTABLECIDAS float pi=13.141516; EN NUESTRO PROGRAMA do PROCESO DE REPETICION { clrscr(); { LLAMAMOS A LA FUNCION BORDE borde(); gotoxy(20,3);printf("<<AREAS Y PERIMETROS DE LAS 4 FIGURAS BASICAS>>"); gotoxy(10,5);printf("1.- CUADRADO"); gotoxy(10,7);printf("2.- TRIANGULO"); IMPRIMO VALORES Y LOS gotoxy(10,9);printf("3.- RECTANGULO"); HAGO VALIDOS gotoxy(10,11);printf("4.- CIRCULO"); PARA EMPEZAR HACER gotoxy(10,13);printf("5.- Salir"); EL MENU gotoxy(10,21);printf("Que opcion desea realizar>> "); scanf("%d",&op); switch(op) { case 1: do PROCESO DE REPETICION { clrscr(); borde(); gotoxy(33,3);printf("CUADRADO"); gotoxy(5,5);printf("Ingrese el lado del cuadrado>> "); SENTENCIA CASE Y LA scanf("%d",&l); IMPRESIÓN DE SUS a=l*l; PROCESOS p=l+l+l+l; gotoxy(12,7);printf("Area>> %d",a); gotoxy(12,9);printf("perimetro>> %d",p); gotoxy(12,17);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: "); scanf("%d",&opc); CERRAMOS PROCESO DE }while(opc==1) ; break; REPETICION case 2: do { clrscr(); borde(); gotoxy(33,3);printf("TRIANGULO"); gotoxy(5,5);printf("Ingrese la base:");scanf("%d",&ba); SENTENCIA CASE Y LA gotoxy(5,7);printf("ingrse la altura:");scanf("%d",&al); IMPRESIÓN DE SUS gotoxy(5,13);printf("ingrese lado a:"),scanf("%d",&l1); PROCESOS gotoxy(5,15);printf("ingrese lado b:"),scanf("%d",&l2); gotoxy(5,17);printf("ingrese lado c:"),scanf("%d",&l3); a=ba*al/2; 97
  • 98. gotoxy(30,6);printf("Area>> %d",a); p=l1+l2+l3; gotoxy(25,12);printf("perimetro>> %d",p); gotoxy(20,21);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc); }while(opc==1) ; CERRAMOS EL CASE break; case 3: do PROCESO DE REPETICION { clrscr(); borde(); gotoxy(33,3);printf("RECTANGULO"); gotoxy(5,5);printf("ingrese la base:");scanf("%d",&ba); gotoxy(5,7);printf("ingrese la altura:");scanf("%d",&al); a=ba*al; p=2*(ba+al); gotoxy(12,11);printf("area>> %d",a); gotoxy(12,13);printf("perimetro>> %d",p); gotoxy(20,20);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: ");scanf("%d",&opc); }while(opc==1) ; CERRAMOS PROCESO DE SENTENCIA CASE Y LA IMPRESIÓN DE SUS PROCESOS REPETICION break; case 4: do { clrscr(); borde(); gotoxy(33,3);printf("circulo"); gotoxy(5,5);printf("ingrese el radio:");scanf("%d",&r); gotoxy(5,7);printf("ingrese el diametro:");scanf("%d",&d); a= pi*(r*r); p= pi*d; gotoxy(12,11);printf("area>> %d",a); gotoxy(12,13);printf("perimetro>> %d",p); gotoxy(20,20);printf("PRESIONE 1 PARA REPETIR EL PROCESO O 0 PARA FINALIZAR: "); scanf("%d",&opc); }while(opc==1); break; case 5: exit; SENTENCIA CASE Y LA IMPRESIÓN DE SUS PROCESOS CERRAMOS PROCESO DE REPETICION SALIR TOTALMENTE DEL PROGRAMA 98
  • 99. break; } } gotoxy(20,22);printf("DESEA VOLVER AL MENU PRINCIPAL 1/0: ");scanf("%d",&aux); } while(aux==1); getch(); CERRAMOS EL } PROGRAMA  CERRAMOS PROCESO DE REPETICION DOCUMENTACION 99
  • 100. 100
  • 101. 101
  • 103. 27.- Realice un menú que me permita realizar las conversiones básicas de metro, kilometro, hectómetro y decímetro. #include<conio.h> LIBRERIAS #include<stdio.h> #include<stdlib.h> void borde() { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int i; clrscr(); for(i=1;i<=80;i++) { gotoxy(i,1);printf("±"); SENTENCIA FOR PARA gotoxy(i,24);printf("±"); REALIZAR EL BORDE } for(i=1;i<=24;i++) { gotoxy(1,i);printf("±"); gotoxy(80,i);printf("±"); } } void main() { VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA int op,col=8; 103
  • 104. float km,nu,dam,hm,m; clrscr(); do PROCESO DE REPETICION { borde(); gotoxy(32,3);printf("CONVERSIONES BASICAS"); gotoxy(5,6);printf("1.- De Metros a Km - Hm - Dam"); gotoxy(5,8);printf("2.- De Kilometros a M - Hm - Dam"); gotoxy(5,10);printf("3.- De Hectometros a M - Km - Dam"); gotoxy(5,12);printf("4.- De Decametros a M - Km - Hm"); gotoxy(5,14);printf("5.- Salir"); gotoxy(5,22);printf("Que opcion desea realizar: "); scanf("%d",&op); switch(op) { case 1: clrscr(); borde(); gotoxy(33,3);printf("De Metros a Km - Hm - Dam"); gotoxy(5,5);printf("Ingrece la cantidad: "); scanf("%f",&nu); km=nu*0.001; hm=nu*0.01; dam=nu*0.1; gotoxy(col,8);printf("Km = %f",km); gotoxy(col,10);printf("Hm = %f",hm); gotoxy(col,12);printf("Dam = %f",dam); break; case 2: clrscr(); borde(); gotoxy(33,3);printf("De Kilometros a M - Hm - Dam"); gotoxy(5,5);printf("Ingrece la cantidad: ");scanf("%f",&nu); m=nu*1000; hm=nu*100; dam=nu*10; gotoxy(col,8);printf("M = %f",m); gotoxy(col,12);printf("Hm = %f",hm); gotoxy(col,10);printf("Dam = %f",dam); break; case 3: clrscr(); borde(); gotoxy(33,3);printf("De Hectometros a M - Km - Dam"); gotoxy(5,5);printf("Ingrece la cantidad: ");scanf("%f",&nu); km=nu*0.1; m=nu*100; IMPRIMO VALORES Y LOS HAGO VALIDOS PARA EMPEZAR HACER EL MENU SENTENCIA CASE Y LA IMPRESIÓN DE SUS PROCESOS SENTENCIA CASE Y LA IMPRESIÓN DE SUS PROCESOS SENTENCIA CASE Y LA IMPRESIÓN DE SUS PROCESOS 104
  • 105. dam=nu*10; gotoxy(col,12);printf("Km = %f",km); gotoxy(col,8);printf("M = %f",m); gotoxy(col,10);printf("Dam = %f",dam); break; case 4: clrscr(); borde(); gotoxy(33,3);printf("De Metros a M - Km - Hm"); gotoxy(5,5);printf("Ingrece la cantidad: ");scanf("%f",&nu); km=nu*0.001; hm=nu*0.01; SENTENCIA CASE Y LA m=nu*10; IMPRESIÓN DE SUS gotoxy(col,12);printf("Km = %f",km); PROCESOS gotoxy(col,10);printf("Hm = %f",hm); gotoxy(col,8);printf("M = %f",m); break; case 5: SALIR TOTALMENTE DEL PROGRAMA exit(0); break; } gotoxy(3,23);printf("1 PARA VOLVER AL MENU DE DATOS 0 PARA FINALIZAR: ");scanf("%d",&op); CERRAMOS PROCESO DE } REPETICION while(op==1); getch(); CERRAMOS EL } PROGRAMA  DOCUMENTACION 105
  • 106. 106
  • 108. 28.-Diseñe un programa que me permita realizar un borde utilizaciones funciones. #include<stdio.h> LIBRERIAS #include<conio.h> #include<stdlib.h> int i; void borde() FUNCION BORDE { for(i=1;i<=80;i++) { gotoxy(i,24);printf("*"); gotoxy(i,1);printf("*"); SENTENCIA FOR PARA } REALIZAR EL BORDE for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void main () { clrscr(); LLAMAMOS A LA FUNCION BORDE borde(); getch(); }  DOCUMENTACION 108
  • 110. 29.-Diseñe un programa utilizando funciones que me permita generar n numeros naturales  ANÁLISIS DEL PROGRAMA: #include<stdio.h> LIBRERIAS #include<conio.h> int limite,op,i,fila,col; VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA void borde() { for (i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } SENTENCIA FOR PARA for (i=1;i<=24;i++) REALIZAR EL BORDE { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void numeros(int limite1) FUNCION NUMERO { fila=7; col=10; for(i=1;i<=limite1;i++) { gotoxy(col,fila);printf("%d",i); fila=fila+1; PROCESO FOR if(fila==18) Y PROCESOS { col=col+10; fila=7; } } } void main() { do PROCESO DE REPETICION { clrscr(); LLAMADO FUNCION DE BORDE borde(); gotoxy(10,4);printf("serie de numeros"); gotoxy(15,5);printf("ingrese el limite==>");scanf("%d",&limite); numeros(limite); //variable del programa LLAMADO DE LA FUNCION NUMERO 110
  • 111. gotoxy(20,20);printf("presine 1 para continuar o 0 para salir==>"); scanf("%d",&op); } while(op==1); getche(); CERRAMOS EL } PROGRAMA  CERRAMOS PROCESO DE REPETICION DOCUMENTACION 111
  • 113. 30.- Diseñe un programa utilizando funciones que me permita calcular el valor de las comisiones por venta de vehículos según los siguientes condicionamientos, existen 3 vendedores, el vendedor 1, el vendedor 2, el vendedor 3, se asigna un valor de comisión si:  La venta es ≥ 8500 y ≤ 13500 la comisión es del 3%  La venta es > 13500 y ≤ 18000 la comisión es del 8%  La venta es > 18000 la comisión es del 11% Obtenga el número de ventas realizadas por vendedor, el total de ventas realizadas, el total de comisiones recibidas y el total general de todas las comisiones.  ANÁLISIS DEL PROGRAMA: #include<stdio.h> #include<conio.h> #include<stdlib.h> int i,op,fila,op1,op2,v=0; float totalv,c,valor,a,b,d; LIBRERIAS VALIDACION DE LOS TERMINOS ESTABLECIDAS EN NUESTRO PROGRAMA void borde() FUNCION BORDE { clrscr(); for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } SENTENCIA FOR PARA for(i=1;i<=24;i++) REALIZAR EL BORDE { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } FUNCION VENDEDOR void vendedor() { gotoxy(10,5);printf("Ingrese el valor de la venta:"); gotoxy(5,7);printf("Cantidad:"); gotoxy(19,7);printf("Porcentaje:"); gotoxy(35,7);printf("Comision:"); fila=8; totalv=0; IMPRIMO VALORES Y LOS HAGO VALIDOS 113
  • 114. do PROCESO DE REPETICION { fila=fila+1; gotoxy(6,fila);scanf("%f",&valor); if(valor<8500) { gotoxy(34,fila);printf("sin comision"); } else { if(valor>=8500 && valor<=13500) { DECISION SENTENCIA IF Y SUS gotoxy(19,fila);printf(" 3% "); PROCESOS c=valor*0.03; CORRESPONDIENTES gotoxy(37,fila);printf("%.2f",c); } else { if(valor>13500 && valor<=18000) { gotoxy(19,fila);printf(" 8% "); c=valor*0.08; gotoxy(37,fila);printf("%.2f",c); } else { gotoxy(19,fila);printf(" 11% "); c=valor*0.11; gotoxy(37,fila);printf("%.2f",c); } } } totalv=totalv+valor; gotoxy(50,5);printf("Total Ventas: %.2f ",totalv); v=v+1; PROCESOS gotoxy(50,7);printf("Numero Ventas: %d ",v); a=a+c; gotoxy(50,9);printf("Total Comisiones: %.2f ",a); gotoxy(54,22);printf(" "); CERRAMOS PROCESO DE gotoxy(10,22);printf("Desea ingresar otra venta 1 / Calcular 0 ==> "); REPETICION scanf("%d",&op1); 114
  • 115. }while(op1==1); } FUNCION VENDEDOR void vendedor2() { gotoxy(10,5);printf("Ingrese el valor de la venta:"); gotoxy(5,7);printf("Cantidad:"); gotoxy(19,7);printf("Porcentaje:"); gotoxy(35,7);printf("Comision:"); fila=8; totalv=0; do PROCESO DE REPETICION { fila=fila+1; gotoxy(6,fila);scanf("%f",&valor); if(valor<8500) { gotoxy(34,fila);printf("sin comision"); } else { if(valor>=8500 && valor<=13500) { gotoxy(19,fila);printf(" 3% "); c=valor*0.03; gotoxy(37,fila);printf("%.2f",c); } else { if(valor>13500 && valor<=18000) { gotoxy(19,fila);printf(" 8% "); c=valor*0.08; gotoxy(37,fila);printf("%.2f",c); } else { gotoxy(19,fila);printf(" 11% "); c=valor*0.11; gotoxy(37,fila);printf("%.2f",c); IMPRIMO VALORES Y LOS HAGO VALIDOS DECISION SENTENCIA IF Y SUS PROCESOS CORRESPONDIENTES 115
  • 116. } } } totalv=totalv+valor; gotoxy(50,5);printf("Total Ventas: %.2f ",totalv); v=v+1; PROCESOS gotoxy(50,7);printf("Numero Ventas: %d ",v); b=b+c; gotoxy(50,9);printf("Total Comisiones: %.2f ",b); gotoxy(54,22);printf(" "); CERRAMOS PROCESO DE gotoxy(10,22);printf("Desea ingresar otra venta 1 / Calcular 0 ==> "); REPETICION scanf("%d",&op1); }while(op1==1); } void vendedor3() FUNCION VENDEDOR { gotoxy(10,5);printf("Ingrese el valor de la venta:"); gotoxy(5,7);printf("Cantidad:"); IMPRIMO VALORES Y LOS gotoxy(19,7);printf("Porcentaje:"); HAGO VALIDOS gotoxy(35,7);printf("Comision:"); fila=8; totalv=0; do { fila=fila+1; gotoxy(6,fila);scanf("%f",&valor); if(valor<8500) { gotoxy(34,fila);printf("sin comision"); } SENTENCIA CASE Y LA else IMPRESIÓN DE SUS { PROCESOS if(valor>=8500 && valor<=13500) { gotoxy(19,fila);printf(" 3% "); c=valor*0.03; gotoxy(37,fila);printf("%.2f",c); } else { if(valor>13500 && valor<=18000) 116
  • 117. { gotoxy(19,fila);printf(" 8% "); c=valor*0.08; gotoxy(37,fila);printf("%.2f",c); } else { gotoxy(19,fila);printf(" 11% "); c=valor*0.11; gotoxy(37,fila);printf("%.2f",c); } } } totalv=totalv+valor; gotoxy(50,5);printf("Total Ventas: %.2f ",totalv); v=v+1; PROCESOS gotoxy(50,7);printf("Numero Ventas: %d ",v); d=d+c; gotoxy(50,9);printf("Total Comisiones: %.2f ",d); gotoxy(54,22);printf(" "); CERRAMOS PROCESO DE gotoxy(10,22);printf("Desea ingresar otra venta 1 / Calcular 0 ==> "); REPETICION scanf("%d",&op1); }while(op1==1); } FUNCION COMISIONES void comisiones() { gotoxy(31,3);printf("TOTAL DE COMISIONES"); gotoxy(15,6);printf("Comision del primer vendedor: "); gotoxy(50,6);printf("%.2f",a); gotoxy(15,8);printf("Comision del segundo vendedor: "); gotoxy(50,8);printf("%.2f",b); gotoxy(15,10);printf("Comision del tercer vendedor: "); gotoxy(50,10);printf("%.2f",d); } void main() { do PROCESO DE REPETICION { v=0; totalv=0; PROCESOS 117
  • 118. clrscr(); LLAMAMOS A LA FUNCION BORDE borde(); gotoxy(31,3);printf("VENTAS DE VEHICULOS"); gotoxy(8,5);printf("1. Primer Vendedor"); IMPRIMO VALORES Y LOS gotoxy(8,7);printf("2. Segundo Vendedor"); HAGO VALIDOS gotoxy(8,9);printf("3. Tercer Vendedor"); PARA EMPEZAR HACER gotoxy(8,11);printf("4. Total Comisiones"); EL MENU gotoxy(8,13);printf("5. Salir"); do { gotoxy(27,20);printf(" "); gotoxy(5,20);printf("Ingrese una opcion ==> ");scanf("%d",&op); }while(op>5); switch (op) { case 1: clrscr(); CASE 1 Y LA LLAMADA DE FUNCION VENDEDOR borde(); gotoxy(31,3);printf("Primer Vendedor"); vendedor(); break; case 2: clrscr(); borde(); CASE 2 Y LA LLAMADA DE gotoxy(31,3);printf("Segundo Vendedor"); FUNCION VENDEDOR 2 vendedor2(); break; case 3: clrscr(); borde(); gotoxy(31,3);printf("Tercer Vendedor"); CASE 3 Y LA LLAMADA DE vendedor3(); FUNCION VENDEDOR 3 break; case 4: clrscr(); borde(); CASE 1 Y LA LLAMADA gotoxy(31,3);printf("TOTAL DE COMISIONES GENERAL"); DE FUNCION comisiones(); COMISIONES break; 118
  • 119. case 5: exit(0); break; } gotoxy(61,22);printf(" "); gotoxy(10,22);printf("Presiones 1 para volver al menu o 0 para salir ==> ");scanf("%d",&op2); }while(op2==1); getch(); CERRAMOS EL } CERRAMOS PROCESO DE REPETICION PROGRAMA  DOCUMENTACION 119
  • 120. 120
  • 121. 121
  • 122. 122
  • 123. 123
  • 125. 125
  • 126. 126