Turbo C

isel
29 de Marzo del 2005
Estoy desesperada, ¿alguno de vosotros podría enviarme el tutorial de turbo C vs2.01 o decirme donde puedo descargalo? Soy una estudiante de informatica de gestión i necessitaria este tutorial para poder hacer una práctica de SOP (Sistemas Operativos)

ismael
29 de Marzo del 2005
contactame por favor a mi correo yo te lo puedo facilitar

W0LF
29 de Marzo del 2005
http://community.borland.com/article/images/20841/tc201.zip
no estoy seguro de que te sirva pero igual es esto lo que buscabas, es el sitio de descarga, si encontraras el tutorial me harias un favor si me avisaras. saludetess

carmen
29 de Marzo del 2005
como se calcula el perimetro en un triangulo

Julio
29 de Marzo del 2005
solo mandame tu direccion de correo electronico a mi direccion de correo y yo te envio lo que quieres

Victor
29 de Marzo del 2005
Hola amigo, porfavor podrias mandarme un programa que calcule la edad de una persona, considerando si es año bisciesto, si se ingresa fechas incorrectas, meses mayores a doce, dias mayores a 28, 29 para años normales o bisciestos y todas esas consideraciones.
Gracias

emiliomx
29 de Marzo del 2005
http://progmanuales.webcindario.com/index.php

Omicron
29 de Marzo del 2005
oye dime como es la practica .. cual es el tema talvez nos podamos ayudar..yo tambien estoy viendo S.O
a y con el manual ...pues el la biblioteca o es ta libro programacion en turbo c y programacion avanzada en turbo c++ , es un libro estandar ,,y se que en muchas universidades esta. aunque no recuerdo el nombre del autor..se que es un libro azul (XD perdona)

fernando
29 de Marzo del 2005
Programación en C/C++




(Manual FV)



















ÍNDICE












Introducción............................................................................................................................................................. 3





I.- Introducción a la programación en C............................................................................................................... 5





II.- Estructuras de Programación......................................................................................................................... 21





III.- Funciones........................................................................................................................................................ 57





IV.- Punteros y Arrays.......................................................................................................................................... 89





V.- Entrada y Salida por Ficheros...................................................................................................................... 131





VI.- El lenguaje de programación C++.............................................................................................................. 171





VII.- Arrays, Punteros y Funciones en C++.................................................................................................... 187





VIII.- Programación Orientada a Objetos......................................................................................................... 205





Apéndice A: Funcionamiento básico del Turbo C++ 3.1.............................................................................. 223





Apéndice B: Instalación y Funcionamiento básico del DJGPP 2.1.............................................................. 227





Apéndice C: La “moderna” P.O.O (Visual C++ 6.0)........................................................................................ 229































Introducción






- Manual F.V.

Significa “manual práctico de informática”, pero realmente realmente PRÁCTICO.





- En primer lugar deberías decidir en qué carpeta de tu ordenador quieres grabar tus programas. Personalmente me referiré continuamente a la carpeta C:TuCarpeta, es decir, cuando encuentres en el manual TuCarpeta, deberás sustuirla por el nombre de tu carpeta de verdad.





- En segundo lugar deberías decidir el compilador de C/C++ que deseas usar.

La mayoría de programas del libro han sido probados en tres compiladores:

· Para el entorno MS/DOS: DJGPP 2.1

· Para el entorno Windows 3.x: Turbo C++ 3.1 de Borland

· Para el entorno Windows 95/98: Visual C++ 6.0 de Microsoft



En los apéndices A, B y C encontrarás las instrucciones básicas del funcionamiento de estos tres compiladores



Si no dispones de ningún compilador de C/C++, bájate de Internet el DJGPP 2.1, encontrarás las instrucciones correspondientes en el apéndice B.



En el caso concreto del “Visual C/C++”, hay unos pocos programas que no te funcionarán: consulta el apéndice C.





- Cómo aprovechar al máximo este curso:

· Escribe los programas, utilizando tu compilador de C/C++

· Grábalos utilizando el nombre que aparece en la primera línea del programa en TuCarpeta.

· Ejecútalos un par o tres de veces, observando detenidamente el resultado del programa, el programa fuente y las explicaciones que te indico en cada programa

· Subraya, corrige, tacha y añade todo lo que consideres importante en tu manual (o hazte tu propio manual con tus apuntes personales en una libreta).

· Es muy importante que hagas los ejercicios de autoevaluación, que aparecen al final de cada capítulo. Deberás guiarte por los programas que aparecen en cada tema y su realización demostrará que has asimilado los conceptos y procedimientos del capítulo.





- Por último y antes de empezar:

Debes tener en cuenta que en ningún caso “programaremos” utilizando las características propias del “entorno”, quiero decir: aunque utilices un compilador de C en entorno Windows por ejemplo, todos los programas que harás utilizando este manual, en principio funcionan igual en el entorno MS/DOS o UNIX, por citar dos muy conocidos.

Seria materia de otro curso el estudio del “entorno de desarrollo” e “interface gráfico” de tu compilador de C/C++

Un caso aparte es la introducción al “Visual C/C++”, del apéndice C, que es conveniente realizar después del capítulo 8 (¡el último!), para conocer las tendencias de la moderna “programación orientada a objetos”.





















I.- Introducción a la Programación en C






a) Introducción Teórica



Creador:



Dennis Ritchie (Laboratorios Bell) el 1972, cuando trabajaba junto con Ken Thompson en el diseño del sistema operativo UNIX.

El ‘C’ se creó como herramienta para programadores, en consecuencia su principal objetivo es ser un lenguaje útil.







Características:



El “C” es un lenguaje de programación de “alto nivel” (alto nivel quiere decir “próximo al lenguaje humano”), pero con características de “bajo nivel” (bajo nivel= próximo al lenguaje máquina).



Es de ALTO NIVEL porque es racional, estructurado y fácil de aprender.



Es de BAJO NIVEL porque permite trabajar con “bits”, registros de la C.P.U. y posiciones de memoria.







¿Porqué el “C”?



El lenguaje ‘C’ es poderoso y flexible: la mayor parte del sistema operativo UNIX está escrito en ‘C’. Incluso están escritos en ‘C’ los compiladores e intérpretes de otros lenguajes, como FORTRAN, APL, PASCAL, LISP, LOGO y BASIC.



El lenguaje ‘C’ es “amistoso” porque es lo suficientemente esrtucturado para ejercer buenos hábitos de programación. Es el lenguaje de programación más utilizado por el programador de sistemas.









Estructura de un programa en “C”:



El ‘C’ es un lenguaje compilado, vamos a ver que es esto gráficamente:

LINKAR

COMPILAR

CÓDIGO FUENTE

CÓDIGO OBJETO

PROGRAMA EJECUTABLE














CÓDIGO FUENTE: es el programa que nosotros escribimos, se graba con la extensión CPP

CÓDIGO OBJETO: es el programa fuente pero traducido a lenguaje máquina (sucesión de ceros y unos), se graba con la extensión OBJ

PROGRAMA EJECUTABLE: es el programa objeto más las “librerías del C”, se graba con la extensión EXE. Y no necesita el programa que hemos utilizado para crearlo, para poder ejecutarlo.



El código Objeto que genera un compilador de “C”, es casi tan eficiente (rápido) como si lo hubiéramos escrito en lenguaje ENSAMBLADOR (lenguaje de programación más próximo al lenguaje máquina).













Relaciones del “C” con otros lenguajes de programación:



FORTRAN (1955)










ALGOL (1960)










PL/1 (1965)










PASCAL (1970)






C (1972)










C++ (1985)

ANSI C (1985)






















b) Los Primeros Programas en ‘C’



- Prog001.cpp



/* Prog001.cpp */



#include <stdio.h>



void main()

{

printf("Curso de Programación en C");

}





Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog001.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces





/* */

Todo lo que escribimos entre los símbolos anteriores son “comentarios” para el programador, que no influyen para nada en la ejecución del programa.





#include <stdio.h>

Ordena al compilador que incluya en el programa, las funciones de entrada – salida (en nuestro caso hay una: printf).

stdio.h no es más que un fichero “biblioteca”, que contiene una serie de funciones (instrucciones), en nuestro caso de “entrada-salida por pantalla”.

Si en nuestro programa necesitamos una raíz cuadrada por ejemplo, deberíamos incluir (include) otra “biblioteca” (tranquilo, ya las iremos estudiando poco a poco).



void main()

Función o programa principal (main), que no devuelve nada (void)



{ Inicio



printf(“ “) Función que escribe en pantalla



} Fin del programa











- Prog002.cpp



/* Prog002.cpp */



#include <stdio.h>



void main()

{

printf("n"); /* Línea en blanco */

printf("Segunda Linea");

/***********************************

COMENTARIO

************************************/

printf(" continuamos en la 2ª línean");

printf("nAhora estamos en la cuarta línea");

/*

Hasta luego

....................................*/

}









/* */ Todo lo que escribimos entre los símbolos anteriores, el compilador no hace caso.





n Es equivalente a un [Return]. Se le llama manipulador de formato.















c) Datos en “C”





- Prog003.cpp



/* Prog003.cpp */



#include <stdio.h>



void main()

{

char nom[20];

printf("nEscribe tu nombre: ");

scanf("%s",nom);

printf("nHola %s",nom);

}





Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog003.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces





Estudio del PROG003:



· En el lenguaje “C” hay dos tipos de datos: Constantes y Variables

En un programa, una constante es un dato que no puede ser variado durante su ejecución.

El dato “Escribe tu nombre:” del PROG4 es una constante, ya que cada vez que ejecutamos el programa, aparece la misma frase: no hay posibilidad de cambiarla.

En un programa, una variable es un dato que sí puede cambiar mientras se ejecuta un programa.

El dato “nom” del PROG4 es una variable, ya que cada vez que ejecutamos el programa adquiere el valor correspondiente a lo que escribimos ante la orden: “Escribe tu nombre:”



· La sentencia: char nom[20];

Define (declara) la variable “nom”, cuyo contenido serán caracteres (de ahí la palabra char que abre la línea), en un número no superior a 20, porque así lo especifica dicha cifra entre corchetes.

En otras palabras, la línea en cuestión indica al compilador que, para la ejecución del programa debe reservar espacio en memoria para almacenar 20 datos del tipo char, esto es, caracteres, y que en el resto del programa dicha zona de memoria será designada como “nom”

La definición (declaración) de variables en un programa “C” es imprescindible: si no definimos una variable antes de usarla, el programa no funcionará ya que al llegar al nombre de la variable, el programa no sabrá que hacer.



· La sentencia: printf(“nHola %s “,nom);

El printf en cuestión, escribe en pantalla dos datos: Una constante “Hola” y el valor de la variable nom.

El símbolo “%s” es un indicador de formato, que sirve para decir al printf, cómo queremos que nos muestre el valor de la variable nom. La “s” del indicador proviene de la palabra string (“cadena” en inglés).



En definitiva: printf(“nHola %s “, nom);



Escribe en pantalla:

Una línea en blanco, debida a n



Hola %s





Se substituye por el valor de la variable nom



Para que el lenguaje “C” nos escriba en pantalla (printf), el valor de una variable tipo char, es necesario utilizar el indicador de formato: %s





Variable char %s



Será substituido por el valor de la variable







· La sentencia: scanf(“%s”, nom);

Inmovilizará la ejecución del programa, hasta que nosotros escribamos alguna cosa.

Lo que escribamos se guardará en la variable de nombre nom

Hemos de introducir el indicador de formato: %s, correspondiente a datos “tipo carácter” para que lo que escribamos sea interpretado como una cadena de caracteres.

Scanf igual que printf es una función del fichero de cabecera: stdio.h













d) Tipos de Datos





- Prog004.cpp



/* Prog004.cpp */



#include <stdio.h>



void main()

{

float a,b,c;

printf("nPrimer sumando: ");

scanf("%f",&a);

printf("nSegundo sumando: ");

scanf("%f",&b);

c=a+b;

printf("nnLa suma de %f y %f es %f",a,b,c);

}







· La sentencia: float a, b, c ;

Define (declara) 3 variables (a,b y c) numéricas tipo float (números reales).





Tipos de Variables más importantes:



INT número entero

LONG número entero de doble precisión

FLOAT número real

DOUBLE número real de doble precisión





El rango de valores que puede tener cada tipo de variable (número de dígitos) depende del compilador de “C”.

En otro ejercicio veremos la forma de descubrirlo.









· El indicador %f

La utilización de variables float, determina que el indicador de formato sea %f





Variable: CHAR Indicador de formato: %s

FLOAT %f

INT %d

DOUBLE %lf







· El símbolo &

Una variable simple debe aparecer en el scanf precedida del símbolo &: scanf(“%f”,&b)

En el programa anterior Prog003: scanf(“%s”,nom)

No estaba precedida de &, porque la variable nom, no era una variable simple (un solo valor), sino compuesta (llamada también array o vector), porque tomaba un máximo de 20 valores (caracteres).

Ya veremos más adelante, exactamente lo que indica &



· La sentencia: c=a+b

Es la forma de asignar el valor de una variable, a partir del valor de otras.

















e) Asignación de variables





- Prog005.cpp



/* Prog005.cpp */



#include <stdio.h>



void main()

{

double num;

printf("nEscribe un número= ");

scanf("%lf",&num);

printf("nEl cuadrado de %lf es %lf",num,num*num);

printf("nEl cubo de %lf es %lf",num,num*num*num);

}









Observa la sintáxis completa de printf:



Printf(“ %lf %lf “, variable1, variable2);

Se substituye por el valor de la variable1

No es necesario definir una nueva variable (asignación), ya que “variable2=variable1 * variable1”

Se substituye por el valor de la variable2























- Prog006.cpp



/* Prog006.cpp */



#include <stdio.h>



void main()

{

int valor;

valor=15;

printf("Valor= %d",valor);

valor=27;

printf("nValor= %d",valor);

valor=valor+5;

printf("nValor= %d",valor);

}





Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog006.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces





Observa cómo podemos cambiar el valor de una variable, durante la ejecución del programa sin ningún tipo de problema.



La sentencia valor=valor+5; indica que el nuevo valor es igual al antiguo valor más 5 unidades.













f) Tipo de datos “long”



- Prog007.cpp



/* Prog007.cpp */



#include <stdio.h>



void main()

{

int inta,intb;

long longa,longb;

inta=32500;

longa=-2000342527;

printf("El valor de inta es = %d",inta);

printf("n Escribe un entero negativo menor de 32.768 : ");

scanf("%d",&intb);

printf("n El valor de intb es = %d",intb);

printf("nn");

printf("n El valor de longa es = %ld",longa);

printf("n Escribe un entero positivo menor de 2.100.000.000 = ");

scanf("%ld",&longb);

printf("n El valor de longb es = %ld",longb);

}





long (abreviatura de signed long int = entero largo con signo) corresponde a un número entero que puede ser mayor (o menor) a un int.



Observa el formato correspondiente: %ld, a diferencia del %d que correspondía a int.





g) Rango de Datos



- Prog008.cpp



/* Prog008.cpp */





#include <stdio.h>

#include <values.h>



void main()

{

printf("n Escribe el máximo número entero: %d",MAXINT);

printf("n Escribe el máximo número entero largo: %ld",MAXLONG);

printf("n Escribe el mínimo número float: %e",MINFLOAT);

printf("n Escribe el máximo número float: %e",MAXFLOAT);

printf("n Escribe el mínimo número double: %e",MINDOUBLE);

printf("n Escribe el máximo número double: %e",MAXDOUBLE);

}







MAXINT, MAXLONG, MINFLOAT, MAXFLOAT, MINDOUBLE, MAXDOUBLE son constantes que están definidas en el fichero values.h, por lo tanto para que funcione el programa necesitamos la línea: #include <values.h>



El código de formato %e indica que queremos visualizar el número en notación exponencial (científica).



La constante MAXLONG nos da el máximo número entero (entero largo = long).



Si utilizas el compilador DJGPP observarás que MAXINT = MAXLONG, es decir en este compilador de ‘C’, int es equivalente a long















h) Cadenas de caracteres: “puts – gets”





- Prog009.cpp



/* Prog009.cpp */



#include <stdio.h>



void main()

{

char texto[65];

printf("Escribe tu nombre y dos apellidos: ");

scanf("%s",texto);

printf("nAcabas de escribir : %s",texto);

}





Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog009.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces



Observa que el valor de la variable “texto” es todo lo que hemos escrito antes del primer espacio.









- Prog010.cpp



/* Prog010.cpp */



#include <stdio.h>



void main()

{

char texto[65];

puts("Escribe tu nombre y dos apellidos: ");

gets(texto);

puts("Acabas de escribir : ");

puts(texto);

}





Observa que ahora sí, escribe todo lo que hemos escrito ante la pregunta.



La función gets(texto) es equivalente a scanf, pero con dos diferencias fundamentales:

· Sólo funciona para cadenas de caracteres

· Abarca todo el texto que escribamos hasta que pulsamos la tecla [Return]. Por lo tanto es la que nos interesa si hay espacios en blanco.



puts es equivalente a printf, pero con dos diferencias fundamentales:

· Sólo funciona para cadenas de caracteres.

· No podemos utilizar códigos de formato para “imprimir” variables.











i) Mejoremos la salida por pantalla



- Prog011.cpp



/* Prog011.cpp */



/* Programa que despliega un mensaje de

bienvenida en la pantalla */



#include<stdio.h>

#include<conio.h>



void main()

{

clrscr();

/* La función anterior borra la pantalla. Está en <conio.h>

solo tiene sentido si utilizas el DJGPP

*/



printf("nnnnnn"); /* 6 lineas en blanco */

printf("tt"); /* 2 tabuladores */



printf("BIENVENIDO AL CURSO DE C ESTANDAR");



printf("nnnnnnnn"); printf("tttt");



printf("Pulsa cualquier tecla para terminar...n");



getch();

/* La función anterior inmoviliza la ejecución del programa

hasta que pulsamos una tecla */

clrscr();

}





Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog011.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces





Observa detenidamente los comentarios que aparecen en el programa.



El “manipulador” n determinaba una línea en blanco, es decir es equivalente a pulsar la tecla [Return]. El manipulador t es equivalente a pulsar la tecla de tabulación.



Observa que podemos colocar varias sentencias de C en una misma línea de programa, siempre y cuando separemos cada sentencia con un punto y coma.











- Prog012.cpp



/* Prog012.cpp */



/*Programa que calcula el número de dias vividos*/



#include<stdio.h>

#include<conio.h>



void main()

{

char nombre[50];

int edad;

clrscr();



printf("nnttt¿Cómo te llamas? ");

scanf("%s",nombre);

printf("nnttt¿Cuántos años tienes? ");

scanf("%d",&edad);



edad=edad*365;



printf("nnntt%s, has vivido %d dias",nombre,edad);



printf("nnnntttttPulsa cualquier tecla para

terminar...n");

getch();



}





Supongo que estamos de acuerdo en que es muy fácil mejorar la salida por pantalla del programa.







- Prog013.cpp



/* Prog013.cpp */



/*Programa que saca el promedio de 3 números*/



#include<stdio.h>

#include<conio.h>





void main()

{

float numero;

float promedio=0;



printf("Dame el primer número: ");

scanf("%f",&numero);

promedio+=numero;

/* La expresión anterior es equivalente a

promedio=promedio+numero */



printf("Dame el segundo número: ");

scanf("%f",&numero);

promedio+=numero;

printf("Dame el tercer número: ");

scanf("%f",&numero);

promedio+=numero;

promedio/=3;

/* La expresión anterior es equivalente a

promedio=promedio/3 */

clrscr();printf("nnnnnttt");

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

printf("nnt");

printf("Presione cualquier tecla para terminar...n");

getch();

}



Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog013.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces



Toma nota del significado de: promedio+=numero o promedio/=3

Es decir en la primera expresión: “el nuevo valor de promedio es igual al valor antiguo de promedio + el valor de numero”.

En la segunda expresión: “el nuevo valor de promedio es igual al antiguo valor de promedio partido por 3”.





















AUTOEVALUACIÓN 1





1) El siguiente programa tiene errores. Escribelo (grábalo con el nombre EVAL1A en TuCarpeta) y corrígelo para que funcione:



#include <stdio.h>

void main()

{

float radio;

pi=3.141592

printf("Radio= ");

scanf("%f",radio);

printf("nnLongitud = %f",2*pi*radio);

printf("nnÁrea = %f ",pi*radio*radio);

}









2) Haz un programa que funcione de la siguiente forma:



- El programa nos pregunta en qué población vivimos.

- El programa nos pide que introduzcamos la base de un triángulo.

- El programa nos pide que introduzcamos la altura de un triángulo.

- El programa nos da el resultado del área del triángulo correspondiente.

- El programa nos despide con la frase: “Adiós habitante de “ y a continuación nos escribe la población que hemos escrito al principio.



- Graba el programa con el nombre EVAL1B en TuCarpeta.







3) Haz un programa que sirva para calcular un determinante de 2º orden.

Recuerda:

| a b |

| c d | es igual a: a*d-c*b



Graba el programa con el nombre EVAL1C en TuCarpeta.











4) Haz un programa que sirva para calcular el área y el perímetro de un rectángulo.

(Área= base x altura y Perimetro= 2veces la base + 2veces la altura)



Graba el programa con el nombre EVAL1D en TuCarpeta.















5) Haz un programa que nos pide nuestro nombre y teléfono. Como resultado el programa nos escribe una ficha aproximadamente igual a la siguiente:



=================================================



NOMBRE: (el nombre que hemos introducido)



TELÉFONO: (el teléfono que hemos introducido)



==================================================



Graba el programa con el nombre EVAL1E en TuCarpeta.









6) Haz un programa que nos pida un número entero y a continuación el programa nos escribe los 2 enteros siguientes al que hemos introducido.



Graba el programa con el nombre EVAL1F, en TuCarpeta.









7) ¿Qué diferencia hay entre un programa con extensión CPP o OBJ









8) Cita un programa de ordenador muy popular que esté escrito con el lenguaje de programación “C”.







9) ¿Qué quiere decir un lenguaje de programación de ALTO NIVEL y BAJO NIVEL?







10) ¿Porqué el “C” es un lenguaje de programación con características de ALTO NIVEL y de BAJO NIVEL?





11) Relaciona el “C” con otros lenguajes de programación.





12) Vuelve a hacer el programa EVAL1E, pero en lugar del nombre que aparezca el nombre y apellidos



Grábalo con el nombre EVAL1G en TuCarpeta.



13) Repite el EVAL1C pero utilizando n y t, de forma que quede bonito.



Grábalo con el nombre EVAL1H en TuCarpeta.





14) Repite el EVAL1D pero que quede “bonito”.



Grábalo con el nombre EVAL1I en TuCarpeta.





15) Idem con el EVAL1F



Grábalo con el nombre EVAL1J en TuCarpeta.



























II.- Estructuras de Programación








Operadores Lógicos y Relacionales




>, >=, <, <=

== igualdad

!= diferente

&& y

| | o

! no









La Estructura IF – ELSE


- Prog014.cpp



/* Prog014.cpp */



#include <stdio.h>



void main()

{

float a, b;

printf("nEscribe el primer número a= ");

scanf("%f",&a);

printf("nEscribe el segundo número b= ");

scanf("%f",&b);



if (a==b) printf ("nLos dos números son igualesn");



if (a!=b) printf("nLos dos números son distintosn");



if (a>b) printf("nEl número %f es mayor que %fn ",a,b);

else printf("nEl número %f no es mayor que %fn",a,b);



if ((a>b) && (100>a))

{

printf("nEl número %f es mayor que %f ",a,b);

printf("nAdemás los dos son menores de 100");

}

else

{printf("nEl número %f no es mayor que %f ",a,b);

printf(" O uno de los dos números es mayor de 100");

}

}



Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog014.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces







Ejecútalo en los siguientes casos, observando detenidamente lo que aparece:

1) Si a= 70 y b= 2

2) Si a= 50 y b=30

3) Si a= 7 y b= 11

4) Si a= 100 y b= 50

5) Si a= 50 y b= 100





Estudio del programa PROG014:

Observa el uso de los operadores relacionales y lógicos:
(a == b) “a” igual a “b”

(a != b) “a” diferente a “b”

((a>b) && (100>a))

“a” es mayor que “b” y además “100 es mayor que “a”



Observa también que cada relación hemos de encerrarla entre paréntesis.



Estructura de programación IF-ELSE
Observa en primer lugar la sintáxis diferente entre los 4 “IF” del programa:



Los 2 primeros son iguales y más simples: IF (condición) sentencia;

Que quiere decir: Si se cumple la “condición” se ejecutará la sentencia.



El tercer “IF”:

IF (condición) sentencia1 ;

else sentencia2 ;

Que quiere decir: Si se cumple la (condición) se ejecutará la sentencia1, en caso contrario se ejecutará la sentencia2.



El cuarto “IF” es el más completo:

IF (condición)

{

sentencia1;

sentencia2;

}

else

{

sentencia3;

sentencia4;

}

Que quiere decir: Si se cumple la “condición” se ejcutará la sentencia1 y la sentencia2, en caso contrario se ejecutará la 3 y la 4.













La Estructura WHILE


- Prog015



/* Prog015.cpp */


#include <stdio.h>


void main()

{

int x;

x=0;

while (x<6)

{

printf("nEl valor de x es %d ",x);

x=x+1;

}

}







Estructura de programación WHILE:


While (condición)

{

sentencia1;

sentencia2;

sentencia3;

------------;

------------;

}



Que quiere decir: mientras se cumpla la “condición”, ejecuta las sentencias que hay entre llaves.



· Observemos nuestro programa:

1) Definimos una variable entera (int) de nombre: x

2) Inicializamos el valor de la variable “x” a 0

3)

while (x<6)

{

printf("nEl valor de x es %d ",x);

x=x+1;

}

Es decir: Mientras el valor de la variable “x” sea inferior al número 6

Escribe en pantalla el valor de “x”

El valor de “x” es igual al anterior valor de “x” pero + 1



Veamos:

Inicialmente el valor de x=0, por lo tanto se cumple la condición del “While”:

En pantalla aparecerá 0

Y el nuevo valor de “x” será 1.

Cómo el valor actual de “x” es 1, se cumple la condición:

En pantalla aparecerá 1

Y el nuevo valor de “x” será 2.

Cómo el valor actual de “x” es 2, se cumple la condición:

En pantalla aparecerá 2

Y el nuevo valor de “x” será 3.

Cómo el valor actual de “x” es 3, se cumple la condición:

En pantalla aparecerá 3

Y el nuevo valor de “x” será 4.

Cómo el valor actual de “x” es 4, se cumple la condición:

En pantalla aparecerá 4

Y el nuevo valor de “x” será 5.

Cómo el valor actual de “x” es 5, se cumple la condición:

En pantalla aparecerá 5

Y el nuevo valor de “x” será 6.

Cómo el valor actual de “x” es 6, ya no cumplirá la condición. Es decir “saldremos del While” y se acaba nuestro programa.





El contador:


La sentencia x=x+1 se llama “contador” y es muy usada en programación como irás viendo.













Contadores:


- Prog016



/* Prog016.cpp */



#include <stdio.h>

void main()

{

int i,j;

i=2;

j=7;

while (i<j)

{

printf("n i= %d --- j= %d ",i,j);

i++;

j--;

}

}





Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog016.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces





Estudio del Prog016:

· i++

Es equivalente a escribir i=i+1



· j—

Es equivalente a escribir j=j-1





Vamos a hacer un programa que repita 10 veces nuestro nombre. Está claro que la solución al problema es el uso de un “contador” dentro de un “While”.













- Prog017



/* Prog017.cpp */


#include <stdio.h>


void main()

{

int x;

char nom[20];

x=1;

printf("nEscribe tu nombre: ");

scanf("%s",nom);

while (x<=10)

{

printf("%d - ",x);

printf("%s n",nom);

x++;

}

}







- Prog018



/* Prog018.cpp */



#include <stdio.h>



void main()

{

double num,sum,pro;

sum=0;

pro=1;

printf("nEscribe un número diferente de 0 = ");

scanf("%lf",&num);

while (num != 0)

{

sum=sum+num;

pro=pro*num;

printf("nNúmero= %lf Suma= %lf Producto= %lf ",num,sum,pro);

printf("nNuevo número (para acabar escribe 0)= ");

scanf("%lf",&num);

}

printf("nnnSuma Total= %lf Producto Total= %lf",sum,pro);

}



Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog018.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces





Observa:

· Contador SUMA:

sum = sum + num

Es la forma que conseguimos acumular en la suma (variable sum) los diferentes valores de num.

· Contador PRODUCTO:

pro = pro * num

Es la forma que conseguimos acumular en el producto (variable pro) los valores de num.

· Observa también que la suma hemos de inicializarla por cero y el producto por uno.

















La Estructura de Programación FOR


- Prog019



/* Prog019.cpp */



#include <stdio.h>



void main()

{

int x;

for(x=1;x<=10;x=x+1)

{

printf("nEstructura FOR ");

printf("Ahora x= %d",x);

}

}





Estudio del PROG019:



· La Estructura FOR:

for(valor inicial,valor final, paso)

{

sentencia 1;

sentencia 2;

-------------;

-------------;

}



Que quiere decir: Repite la ejecución de las sentencias de programa que hay encerradas entre llaves, tantas veces como te indico en “valor inicial, valor final, paso”.



· for(x=1;x<=10;x=x+1)

Las líneas de programa de nuestro “for” se repetiran: desde x=1 hasta x=10 de 1 en 1, es decir 10 veces.

Si escribiéramos: for(x=23;x<=76;x=x+4), querría decir: repite las líneas de programa desde x=23 hasta x=76 de 4 en 4.

Podríamos hacerlo más sofisticado: for(i=-0.23;i>=-67.78;i=i-1.567). Que traducido dice: repite las líneas de programa que hay dentro del “for” desde 1=0.23 hasta i=-67.78 de –1.567 en –1.567







- Prog020



/* Prog020.cpp */



#include <stdio.h>



void main()

{

int edad,indice;

char nom[25];

printf("Escribe tu nombre: ");

scanf("%s",nom);

printf("nEscribe tu edad: ");

scanf("%d",&edad);

for(indice=1;indice<=edad;indice++)

printf("n%s",nom);

}



Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog020.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces





Observa:

· Si es una sola la sentencia a repetir por el “for”, no se encierra entre llaves (en este aspecto funciona igual que la estructura IF-ELSE).

· Recuerda que indice++ es equivalente a indice=indice+1

· Podemos introducir en “los límites del for” una variable (en nuestro caso edad)







- Prog021



/* Prog021.cpp */



#include <stdio.h>



void main()

{

int mult;

float total;

total=0;

for(mult=11;mult<3000;mult=mult+11)

{

printf("%d-",mult);

total=total+mult;

}

printf("nnSuma= %f",total);

}





Ejecútalo varias veces hasta descubrir lo que hace el programa.











Vamos a hacer un programa que sirva para calcular el factorial de un número. Recuerda que el factorial de un número x es 1*2*3*4....*x



- Prog022



/* Prog022.cpp */



#include <stdio.h>



void main()

{

int i,num;

double fa;

printf("nCálculo del factorial del número: ");

scanf("%d",&num);

fa=1;

for(i=1;i<=num;i++) fa=fa*i;

printf("nEl Factorial de %d es %lf",num,fa);

}





Observa la línea que contiene el for: como sólo contiene una instrucción, puede escribirse todo el “ciclo for” en una sóla línea de programa.







Vamos a hacer un programa que calcule la suma de los 10 primeros múltiplos del número que queramos.



- Prog023



/* Prog023.cpp */



#include <stdio.h>



void main()

{

int num,i;

double sum,mult;

printf("nMúltiplos de qué número: ");

scanf("%d",&num);

sum=0;

for(i=1;i<=10;i++)

{

mult=num*i;

printf("nMúltiplo= %lf",mult);

sum=sum+mult;

printf("nSuma Parcial= %lf",sum);

}

printf("nSuma Total= %lf",sum);

}









Vamos a hacer un programa que calcule la tabla de valores de una función dada.



- Prog024



/* Prog024.cpp */



#include <stdio.h>



void main()

{

float x1,x2,paso;

float y,i;

printf("nTabla de valores para la función Y=X*X-5*X+10");

printf("nnIntroduce el valor menor de X: ");

scanf("%f",&x1);

printf("nIntroduce el valor mayor de X: ");

scanf("%f",&x2);

printf("nIntroduce el incremento del valor de X: ");

scanf("%f",&paso);

for(i=x1;i<=x2;i=i+paso)

{

y=i*i-5*i+10;

printf("nX= %15f Y= %15f",i,y);

}

}





Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog024.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces





La notación %15f indica que la variable correspondiente ocupará 15 espacios en pantalla.



Al ejecutar el programa anterior, nos podemos encontrar con una serie de problemas, por ejemplo si introducimos en el valor menor de x (x1), un valor que sea mayor que el introducido en la variable x2, o también puede suceder que en la variable paso escribamos un número negativo.





Escribe a partir del programa Prog024:



- Prog025



/* Prog025.cpp */



#include <stdio.h>



void main()

{

float x1,x2,paso;

float y,i;

printf("nTabla de valores para la función Y=X*X-5*X+10");

printf("nnIntroduce el valor menor de X: ");

scanf("%f",&x1);

printf("nIntroduce el valor mayor de X: ");

scanf("%f",&x2);

if (x1>x2)

{

printf("nLo siento, vuelve a intentarlo");

return;

}

printf("nIntroduce el incremento del valor de X: ");

scanf("%f",&paso);



if(paso<=0)

{

printf("nLo siento, vuelve a intentarlo");

return;

}



for(i=x1;i<=x2;i=i+paso)

{

y=i*i-5*i+10;

printf("nX= %15f Y= %15f",i,y);

}

}







Ejecútalo varias veces, probando los casos “conflictivos”: x1>x2 o paso=0 o paso negativo.



Está claro que la sentencia return, sirve para acabar el programa.







F) La biblioteca <math.h>


- Prog026



/* Prog026.cpp */



#include <stdio.h>

#include <math.h>



void main()

{

double catet1,catet2,hipot;

printf("nCálculo de la hipotenusa de un T.R.");

printf("n===================================");

printf("nnIntroduce el valor de un cateto: ");

scanf("%lf",&catet1);

printf("nIntroduce el valor del otro cateto: ");

scanf("%lf",&catet2);

hipot=sqrt(catet1*catet1+catet2*catet2);

printf("nnHIPOTENUSA: %lf",hipot);

}



Recuerda:

· Escribe el programa anterior utilizando tu compilador.

· Grábalo con el nombre Prog026.cpp en TuCarpeta.

· Ejecútalo un par o tres de veces





Estudio del PROG026:

· En el programa utilizamos la función sqrt, que calcula la raíz cuadrada.

· Para poder utilizar la función matemática sqrt, necesitamos “incluir” la biblioteca “C”, que contiene las funciones matemáticas. En nuestro caso es la biblioteca: math.h, por esta razón necesitamos la sentencia #include <math.h>



Nos gustaría la posibilidad de calcular 300 hipotenusas. Vamos a mejorar el programa anterior para que sea más cómodo calcularlas.









- Prog027



/* Prog027.cpp */



#include <stdio.h>

#include <math.h>



void main()

{

double catet1,catet2,hipot;

char pregunta[1];

pregunta[0]='s';

while ((pregunta[0]=='s')||(pregunta[0]=='S'))

{

printf("nCálculo de la hipotenusa de un T.R.");

printf("n===================================");

printf("