0% encontró este documento útil (0 votos)
485 vistas

Turbo C

El documento describe los tipos básicos de variables en C, incluyendo char, int, float, double y void, así como las reglas para definir identificadores de variables.

Cargado por

Maggie Miranda
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
485 vistas

Turbo C

El documento describe los tipos básicos de variables en C, incluyendo char, int, float, double y void, así como las reglas para definir identificadores de variables.

Cargado por

Maggie Miranda
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como PPT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 111

I.

Introducción a la programación

1.2 Ambiente de desarrollo


integrado
Introducción

O El lenguaje C cuenta con las siguientes características


características::

Lenguaje de nivel medio

Portabilidad

Lenguaje estructurado o programación estructurada

Compilador

Entorno integrado de desarrollo


Entorno integrado de C
Una vez que entramos a Turbo C, al momento de
ejecutarlo, aparece una ventana con las siguientes
características::
características

El menú principal

La línea y ventana del editor

La línea de mensajes del compilador

La línea de referencia rápida de las teclas


venú de archivos
O £ 
 permite editar un nuevo archivo
è  carga un archivo en el editor
ÿ  guarda el archivo que esta en ese
momento en el editor
ÿ   guarda el archivo por primera vez
ë 
  cambia el directorio por defecto a
otro que se especifique
ÿ  carga el sistema operativo sin salir
de Turbo C, para regresar, teclear j 
]  sale de Turbo C
venú de compilación
O ë  

ë   permite compilar el archivo que esta


actualmente en el editor, a un archivo .OBJ
v  compila directamente el programa en un
archivo ejecutable .EXE
m  recompila todos los archivos
relacionados con el programa
venú de ejecución
O ë 
ë  ejecuta el programa actual (puede
compilar en ese momento).
ï
ë  termina el programa cuando se
está ejecutando en modo depuración (debug).
Õ    ejecuta el programa hasta que
alcanza la línea de código donde está situado el
cursor.
þ    ejecuta la siguiente sentencia, si
esta sentencia incluye una llamada a subturina,
la ejecución se detiene al principio de la
subrutina.
ÿ   ejecuta
  ejecuta la siguiente línea de código,
pero no rastrea en ninguna subrutina que pueda
haberse llamado.
I. Introducción a la programación

1.3 Estructura de un programa


en ³C´
Estructura de un programa
rr   
 
r
     ë 
   r

· 
 
   
·   

      


  

  

        
   
 
  ! "
#$ 

%& ' £  
 ( 
% )

&   
   " %
%& 
 * + , - .
 / rr0  

Estructura de un programa

O Los a   describen el propósito del programa


o de alguna línea del mismo, pero lo que está en ellos
es irrelevante para el compilador
compilador..
O Las u 
 son archivos que contienen información
que se debe incluir en el programa cuando se compila
compila..
O Las ° u u u son todos aquellos
identificadores que se declaran fuera de cualquier
función, principal o no, y por lo mismo se pueden
utilizar en todas las funciones
funciones..
O La función  es la función principal que

debe ir en un programa .cpp, ya que dentro de ésta se
procesa toda la información
información..
O Las ° u u au son todos aquellos
identificadores que van dentro de cualquier función, y
que las demás funciones no pueden utilizar
£unciones printf y scanf
O ï 

Esta función permite desplegar, por parte del programa,


mensajes en pantalla
pantalla.. Su sintaxis es
es::


   
   


ë  a  u

Contiene los caracteres que se visualizarán en pantalla o


las banderas que le dicen a printf como visualizar el resto
de los argumentos
argumentos.. También se incluyen las secuencias de
escape..
escape

ë     

%d visualiza enteros en forma decimal


%f visualiza decimales en formato de punto flotante
%c visualiza un carácter
%s visualiza una cadena de caracteres
£unciones printf y scanf
O ï 

ÿaaa

ë       


  ë
Sonido (alerta) \a 007
Retroceso (espacio atrás) \b 008
Tabulador horizontal \t 009
Nueva línea (cambio de línea) \n 010
Tabulador vertical \v 011
Nueva página \f 012
Retorno de carro \r 013
£unciones printf y scanf
O ÿ 

Esta función permite leer los datos introducidos por el


usuario, mediante el teclado
teclado.. Su sintaxis es
es::



   
    


ë  a  u

Contiene los códigos de control o banderas,


correspondientes a los tipos de variables que se van leer
leer..

ë     

%d lee un entero
%f lee un número de punto flotante
%c lee un carácter
%s lee una cadena de caracteres
Ejemplos
rr  
       

 
 






  
 !!!"
!!!"#$
%

rr  
 &  '      

 
 



 ()*+,-)  
 !!!#





()*+,-)$
 $
%
Ejemplos
r.   

 /  &  '  

0 .r

 
 






10$
2
   /  3#$
4
4
#15150$
6  34
170$
 $
%
Ejemplos
r.   

 /  &  '  

0 .r

 
 






101 $
"""""  
 "
   
 ""#$
""2
   
3#$

4
#15$
"""2
   
03#$

4
#150$
870$rr   '  & 
 

870$rr   '  & 


 

4
74
84
1101 $
""""",92:+!!!

 $
%
II. Tipos, operadores y expresiones

2.1 Variables
Variables

Una ° u es un espacio reservado en memoria


para contener valores que pueden cambiar durante la
ejecución de un programa.

C define a  como los nombres que se


utilizan para referenciar variables.
Variables
Las reglas para definir identificadores son
son::

O Sólo se pueden usar u (mayúsculas o minúsculas),


  y a  aa  ua  ,, como
el '', pero nunca un punto, coma, guión, acento, comillas
o símbolos matemáticos, exclamaciones o
interrogaciones..
interrogaciones
O El primer carácter no puede ser un número
número..
O No puede ser una palabra reservada de C.
O Se distingue entre mayúsculas y minúsculas, de modo
que los identificadores numero y Numero son diferentes
diferentes..
O Los primeros 32 caracteres son significativos
significativos..
O No se admiten palabras acentuadas
acentuadas..
O No se admiten espacios
espacios..
Variables
Los tipos determinan cómo se manipulará la
información contenida en las variables
variables.. En C existen
5 tipos básicos
básicos::

Carácter (character: char)


Entero (integer: int)
Punto flotante (floating-
(floating-point: float)
Doble punto flotante (double-
(double-floating
floating--point:
double)
Sin valor (valueless: void)
Variables
O þ     

Es el tipo básico alfanumérico, es decir que puede


contener un aa
aa,, un 
 a (con el cual no
se realizarán operaciones) o un    a.
a.

      

O þ    

Las variables enteras almacenan números enteros


dentro..
dentro

Este tipo de variables es útil para almacenar números


relativamente grandes, pero sin decimales
decimales..

      
Variables
O þ       
Las variables de este tipo almacenan números con
decimales..
decimales
Son aptos para variables de tipo real, como por ejemplo
el cambio entre pesos y dólares
dólares.. O para números muy
grandes, como la producción mundial de trigo, contada
en granos
granos..
      

O þ        


 
Las variables de este tipo almacenan números al igual
que float, pero usan mayor precisión
precisión.. Usaremos estas
variables cuando trabajemos con números grandes, pero
también necesitemos gran precisión
precisión..
      
Variables
O þ     

Es un tipo especial que indica la ausencia de tipo


tipo.. Se usa
en funciones que no devuelven ningún valor, también en
funciones que no requieren parámetros, aunque este uso
es opcional en C++
C++..

Simplemente hacen su trabajo, y no devuelven valores


valores..
Por ejemplo, funciones como borrar la pantalla, no tienen
nada que devolver, hacen su trabajo y regresan
regresan.. Lo
mismo se aplica a funciones sin parámetros de entrada,
el mismo ejemplo de la función para borrar la pantalla, no
requiere ninguna entrada para poder hacer su cometido
cometido..

      
Variables
þ a   
char 8 -128 a 127
int 16 -32768 a 32767
float 32 3.4E
3.4E--38 a 3.4E+38
double 64 1.7E
1.7E--308 a 1.7E+308
void 0 Sin valores

O v      

Excepto para void, los tipos de datos básicos tienen


varios modificadores que sirven para alterar el significado
de base
base.. Los modificadores preceden al nombre de tipo
tipo::
Variables
þ a   
char 8 -128 a 127
unsigned char 8 0 a 255
signed char 8 -128 a 127
int 16 -32768 a 32767
unsigned int 16 0 a 65535
signed int 16 -32768 a 32767
short int 16 -32768 a 32767
unsigned short int 16 0 a 65535
signed short int 16 -32768 a 32767
long int 32 -2147483648 a 2147483647
signed long int 32 -2147483648 a 2147483647
unsigned long int 32 0 a 4294967295
float 32 3.4E
3.4E--38 a 3.4E+38
double 64 1.7E
1.7E--308 a 1.7E+308
long double 64 1.7E
1.7E--308 a 1.7E+308
Variables
O £    

A continuación se presentan algunos ejemplos


sobre la declaración de variables
variables::

jaja recuerda cuando tuviste el pelo asi


 
 & 1
/ *& & & 
   &   & &  
 
2 3  2 2  
Variables
O j    

Determina el identificador y tipo para definir las variables que
almacenen los siguientes datos
datos::

OEl lado de un cuadrado para calcular el área


ejemplo::  &  
Por ejemplo      &  
 
OUna opción [A/B/C]
OLa suma de dos números enteros, incluyendo los dos números

OLa división de dos números enteros, incluyendo los dos


números
OUn número negativo

OEl precio de un producto

OEl descuento de un producto, incluyendo el precio

OEl dinero total que existe en el mundo

OEl número de granos de arroz que hay en la producción mundial


del mismo
mismo..
OSi el usuario desea continuar con una acción [S/N]

OCalificación promedio de un grupo


II. Tipos, operadores y expresiones

2.2 Constantes
Constantes
Son valores fijos que el programa no puede alterar
alterar.. Las
constantes pueden ser de cualquier tipo
tipo..
Las constantes de caracteres están encerradas entre
comillas simples
simples..
Las constantes enteras son números sin componentes
fraccionarios..
fraccionarios
Las constantes de punto flotante requieren el uso de
punto decimal seguido por el componente fraccional
fraccional..

þ  ë u


char µa¶ µµ\\n¶ µ9¶
int 1 123 21000 -234
long int 35000 -34
short int 10 -12 90
unsigned int 10000 987 40000
float 123.23 4.34e
4.34e--3
double 123.23 12312333 -0.9876324 1.0E100
Constantes
La forma más común de declarar variables es en la
cabecera del programa, debajo de las librerías
mediante la sentencia
sentencia::

·ëÿþþ°u 

El nombre de la constante puede ir con mayúsculas o


minúsculas, pero se recomienda que sea en
minúsculas para diferenciarlas en el programa
programa..
Variables y constantes
rr* $ 45 6 . 
7 
 8  
rr9 $ :;<=<;>?
rr  
 
  
 

rr  


  

@  A
B/C
@  AB/C

@   
1 D    -4* D
@  (E7.*8E D9,E7FE7,+-D
@  8 G;?BH=

/ 
 
 3
I  I
I  I rr05  I
J
KL*L
K=<<<
3KM<B:>N?=HNO;
 
 rr05  I
 
 D    ,  - . + E + *  - . D
  
1 
 (E7.*8E
 D  K %D&
 D  K %D&
 D 1 K %HB;D&8
 D 3 K %D&3
 /
P

I   I


J
rr5       
P
II. Tipos, operadores y expresiones

2.4 Operadores
Operadores
Un operador es un símbolo que le dice al compilador
que realice manipulaciones matemáticas o lógicas
específicas.. En C podemos encontrar tres tipos de
específicas
operadores::
operadores

 

  
  

 

Operadores
O è      

  aa
- Resta y menos unario
+ Suma
* vultiplicación
/ División
% vódulo división
-- Decremento
++ Incremento

Con r se trunca el resto, mientras que recoge el


resto de una división entera pero no funciona en
punto flotante
flotante..
Operadores
O ï        

vás alta ++ --
- (unario)
* / %
vás baja + -

La computadora evalúa de izquierda a derecha los


operadores con el mismo nivel de precedencia
precedencia.. Se
utilizan paréntesis para alterar el orden de la
evaluación..
evaluación
Operadores
O è         


 ua u


  aa
å vayor que
å vayor o igual que
< venor que
< venor o igual que
Igual
! No igual
è    

&& AND
|| OR
! NOT
Operadores
O ï           


vás alta !
å å < <
!
&&
vás baja ||

En C el cero es falso, cualquier otro valor es considerado como


verdadero..
verdadero
Operadores
O ï  
     ë

vás alta - ++ -- !
* / %
+ -
< < å å
!
&&
vás baja ||
Operadores
O è   
  

Este operador es el signo igual ( ) y sirve para


darle valor a alguna variable
variable.. Por ejemplo
ejemplo::

x 10;
area lado*lado;
£unciones de biblioteca
£a  
abs(i) Devuelve el valor absoluto de i.
getchar() Introducir un carácter desde el teclado.
pow(d1, d2) Devolver d1 elevado a la potencia d2.
printf(...) vandar datos a pantalla.
putchar(c) vandar el carácter c a pantalla.
rand() Devolver un entero positivo aleatorio.
sqrt(d) Devolver la raíz cuadrada de d.
scanf(...) Introducir datos por medio del teclado.
toascii(c) Convertir el valor de c a un argumento ASCII.
tolower(c) Convertir una letra a minúscula.
toupper(c) Convertir una letra a mayúscula.

  



 
  
 
II. Tipos, operadores y expresiones

2.5 Expresiones
Expresiones
Los operadores, constantes y variables constituyen las
! .
.

area lado*lado;
circunferencia 3.1416*(radio*radio);
if ((x 15) && (y! 0))
x (y/3) ± ((34*temp) ± 127);
A. £unciones de control de pantalla

vodo texto
gotoxy
Esta función se utiliza para posicionar el cursor en
pantalla.. Su sintaxis es
pantalla es::

  !"

Donde ! es el número de columnas y " el número de


filas.. El número de columnas y filas por default es de
filas
80,, 40 aproximadamente
80 aproximadamente..

Si ponemos coordenadas fuera del rango de pantalla,


Turbo C no marcará ningún error, simplemente
presentará la información de forma desordenada en la
pantalla..
pantalla
textmode
Esta función cambia el modo de video
video.. Su sintaxis es
es::

    

Donde   puede tomar los siguientes valores


valores::

  "° #aa
BW40 0 40 columnas, blanco y negro
C40 1 80 columnas, color
BW80 2 40 columnas, blanco y negro
C80 3 80 columnas, color
vONO 7 80 columnas, monocromo
LASTvODE -1 vodo anterior
textcolor
Cambia el color de texto siguiente al que se ha
especificado.. También puede utilizarse para que el
especificado
texto parpadee.
parpadee. Su sintaxis es
es::
   
Donde  puede tomar los siguientes valores
valores::

a "° a "°


NEGRO 0 AZUL CLARO 9
AZUL 1 VERDE CLARO 10
VERDE 2 CYAN CLARO 11
CYAN 3 ROJO CLARO 12
ROJO 4 vAGENTA CLARO 13
vAGENTA 5 AvARILLO 14
vARRON 6 BLANCO 15
GRIS CLARO 7 BLINK 128
GRIS OSCURO 8
textcolor
Para hacer parpadear el texto debemos ponerlo
ponerlo::

   #$% 

Podemos poner el nombre del color (macro), o bien,


poner su número correspondiente
correspondiente..

textbackground
Se utiliza para establecer el color de fondo de las
operaciones siguientes a la instrucción
instrucción.. Su sintaxis es
es::

  & 

Donde  puede tomar valores únicamente del 0 al


6 de los macros vistos anteriormente
anteriormente..
vodo texto
Para poder enviar texto con formato a pantalla y leer
información es necesario utilizar las funciones
respectivas::
respectivas

cprintf() Escribe salida formateada


cputs() Escribe una cadena
putch() Saca un carácter
getche() Introduce un carácter
cgets() Introduce un carácter
cscanf() Lee entrada del teclado
cgets() Lee una cadena

Estas funciones tienen la misma sintaxis que sus


similares, vistas para formato de texto normal.
normal.
III. Estructuras de control

3.1 Tipos
Sentencias de control
Las sentencias de control gobiernan el flujo de
ejecución de un programa
programa.. Estas sentencias se
pueden dividir en 3 categorías en Turbo C:

Instrucciones condicionales: 
''

 (
Instrucciones de control de bucle: ( 
( ''(
Instrucciones de bifurcación incondicional: 
III. Estructuras de control

3.2 if-
if-else
Instrucción if-
if-else
Se utiliza para realizar una comprobación lógica y a
continuación llevar a cabo una de las dos posibles
acciones, dependiendo del resultado de la
comprobación..
comprobación

La parte 
 de la instrucción '
'
 es opcional
opcional.. Por
tanto, las instrucciones se pueden escribir, en su
forma general más simple
simple::

  
 
 

La  
 se debe encontrar entre paréntesis
paréntesis.. La

  sólo se ejecutará si la expresión tiene un
valor no nulo (es verdadera)
verdadera).. Si la  
 tiene un
valor igual a cero (es falsa), entonces se ignorará la

 

 ..
Instrucción if-
if-else
Si incluimos el 


,, entonces tenemos la forma
general::
general

  


  )



  *

La forma gráfica de la sentencia ifif--else queda


representada::
representada

V
!


Instrucción if-
if-else
Cuando la sentencia if- if-else lleva más de una
instrucción, estas se deben poner entre llaves de inicio
y fin, y no llevan punto y coma al finalizar
finalizar::
  



  )

  *+
,
-




  )

  *+
,
-
Escalonador if-
if-else
else--if
Sirve para hacer varias comparaciones y determinar qué
acciones realizar
realizar::
  


  )

   


  *

   


  .
,



  
   


 
Al terminar todas las sentencias de comparación se debe
poner un 
 sin ninguna  
 ya que lo que esté
en ese 
 se ejecutará si ninguna de las
comparaciones anteriores es verdadera
verdadera..
Escalonador if-
if-else
else--if
Su representación gráfica es la siguiente
siguiente::


!

V V V
! ! !

  
if anidados
Sirve para hacer varias comparaciones y determinar qué
acciones realizar
realizar..

La diferencia con el '


'


'' es que en el anterior en
cuanto una expresión resulta verdadera, se ejecutan sus
instrucciones correspondientes y se salta todos los
demás 

Con los  anidados, aunque una expresión resulte


verdadera en un  anterior, se sigue comparando en los
posteriores hasta terminarlos todos
todos::

  

 !

  )
u

  *
if anidados
El 
 está enlazado con el  más cercano que no tenga
ya una sentencia 
 asociada
asociada..

El ejemplo anterior tiene el 


 asociado al segundo , ,
mientras que el primero no tiene sentencia 

(quedamos que cuando se trata de un ''


,, es opcional
poner el 


Para poner la sentencia 


 al primer  tendríamos
tendríamos::

 !

  


  )
-
u

  *
if anidados
La representación gráfica de los  anidados es
es::

  
! ! !

V V V

Ver la otra diferencia con el 


   '
'


'' : aquí las
otras sentencias  se realizan cuando la condición del  anterior
es verdadera
verdadera.. En el 
   ,, se realizan cuando la
condición del  anterior es falsa
falsa..

Por último, cabe hacer mención, que en la representación


gráfica de todas las formas vistas del 
,,   debemos
tener    y    (si y no)
no)..
III. Estructuras de control

3.3 switch
Instrucción switch
Aunque el 
  ' '


'' puede realizar
comprobaciones múltiples, no es elegante y puede
confundir;; por tal motivo C cuenta con la sentencia de
confundir
bifurcación múltiple llamada $a
$a..

En
 ( la computadora comprueba una variable
sucesivamente frente a una lista de constantes enteras
o de carácter
carácter.. Después de encontrar una coincidencia,
la computadora ejecuta la sentencia o bloque de
sentencias que se asocian con la constante
constante..
Instrucción switch
La forma general de la sentencia
 ( es
es::


 (    

 
  )+

   
 


 

 &
 &

 
  *+

   
 


 

 &
 &

 
  .+

   
 


 

 &
 &
,
 
 

   
 


 

-
Instrucción switch
El   es opcional y se ejecuta si ninguna
coincidencia es encontrada, en caso de no poner el
 ,, y no encontrar coincidencias, simplemente no
 
se hace nada
nada..

En el último
 no se pone el  &  &,, solo es
necesario cuando no se incluye la sentencia  
 .. Se
pueden poner cuantas sentencias
 se necesiten
necesiten..

La representación gráfica de
 ( es
es::

!

@      
Instrucción switch
El switch compara por igualdad, mientras que el  por
cualquier tipo
tipo..

Técnicamente la sentencia  & es opcional dentro de


la sentencia
 (

 (.. La sentencia  & se utiliza para
terminar la secuencia que está asociada con cada
constante.. Si se omite, la ejecución continuará en las
constante
sentencias del siguiente
 hasta que la
computadora encuentra un  & o el final del
 (
switch anidados
Se puede tener una sentencia
 ( que es parte de una
secuencia de sentencias de otro
 (

 (::

 (    

 
  )+

 (    

 
  )+

   
 


 

 &
 &

 
  *+

   
 


 

-
 &
 &

 
  *+

   
 


 

 &
 &
,
 
 

   
 


 

-
III. Estructuras de control

3.4 Bucle for


Instrucción for
La instrucción for junto con while y dodo--while conforman
las instrucciones de control de bucle de Turbo C.

Los bucles permiten a la computadora repetir un conjunto


de instrucciones hasta que se cumple cierta instrucción o
condición..
condición

La forma general de la sentencia  es


es::

    /     


   /      
  
Instrucción for
La au%a es una sentencia de asignación que el
compilador usa para establecer la variable de control de
bucle..
bucle

La a a es una expresión que comprueba la


variable de control del bucle cada vez para determinar
cuándo salir del bucle
bucle..

El a define la manera en que cambia la


variable de control de bucle cada vez que la
computadora repite el mismo
mismo.. Se deben separar estas
tres grandes secciones usando punto y coma (;).

El bucle  continuará la ejecución mientras la


condición sea verdad
verdad.. Una vez que es falsa la ejecución
del programa, continuará con la sentencia que sigue al
..

Instrucción for
La representación de la instrucción  en un diagrama de
flujo es la siguiente
siguiente::

V
°u au!a  



aa aa 


Instrucción for
Como sencillo ejemplo, el siguiente programa imprime
los números 1 a 100 en pantalla
pantalla::

@  A

A
BB/C
@  A
ABB/C

I I
J
 3
 

 
 
3KG
3K G 3AK
3AKG<<
G<< 3QQ
 %
 % & 3 3

 /
 / 
P
Instrucción for
Este programa inicializa 3 a G. como x es menor que
G<<,, el programa llama a   . Después de
G<<
volver de   , el programa incrementa 3 en G y
comprueba para ver si es todavía menor que G<<
G<<.. este
proceso se repite hasta que 3 es mayor que G<<
G<<,, en
ese momento termina el bucle
bucle..

En este ejemplo, 3 es la variable de control del bucle,


que se cambia y comprueba cada vez que se repite el
bucle..
bucle

El bucle  no siempre necesita ir hacia delante


delante.. Se
puede crear un bucle negativo decrementado, en ves de
incrementado, el valor de la variable de control
control.. Por
ejemplo, el siguiente programa muestra los números del
100 al 1:
Instrucción for
@  A

A
BB/C
@  A
ABB/C

I I
J
 3
 

 
 
3KG<<
3K G<< 3C
3C<< 3MM
MM
 %
 % & 3 3

 /
 / 
P

Sin embargo, C no restringe a incrementar o


decrementar el valor de la variable de control de bucle
bucle..
En verdad, se puede usar cualquier tipo de asignación
que se quiera
quiera.. Por ejemplo, el siguiente bucle imprime
el número de 0 a 100
100,, de cinco en cinco en cinco
cinco::
Instrucción for
@  A

A
BB/C
@  A
ABB/C

I I
J
 3
 

 
 
3K<
3K < 3AK
3AKG<<
G<< 3K3Q
3K3Q;;
 %
 % & 3 3

 /
 / 
P

Usando un bloque de código se puede tener una


sentencia  repitiendo sentencias múltiples como se
muestra a continuación
continuación.. Este ejemplo imprime las raíces
cuadradas de los números del 0 a 99
99::
Instrucción for
@  A

A
B
B/C
@  A
AB
B/C
I I
J
 
 

 

K<
K< AG<<
AG<< QQ
J
 E

$ % & 

  )
 


$
$ %&  
 
P
 /
 /
P

Un punto importante del bucle  es que siempre


realiza la prueba condicional en lo alto del bucle
bucle.. Esto
significa que la computadora puede no ejecutar el
código dentro del bucle si la condición es falsa
falsa.. Por
ejemplo::
ejemplo
Instrucción for
@  A

A
B
B/C
@  A
AB
B/C
I I
J
 3& )
 

 

3KG<
3KG<

)KG<
)KG<
 )K3
)K3
 QQ)
 
 %
% & )
)

 
 %
%& )
)

 /
 /
P

El bucle no se ejecutará ya que x e y son iguales cuando la


computadora entra en el bucle
bucle.. Debido a esto la expresión
condicional es falsa, la computadora no ejecutará ni el
cuerpo del bucle ni la porción de incremento del bucle
bucle.. Así
que, todavía tendrá el valor 10 asignado a él y la salida
tendrá sólo el número 10 impresa una vez en pantalla
pantalla..
Instrucción for
C permite diversas variaciones que incrementan el poder,
la flexibilidad y aplicabilidad del bucle for para ciertas
aplicaciones de programación
programación.. Una de las variaciones más
comunes es el uso de dos o más variables de control del
bucle..
bucle
A continuación se presenta un ejemplo en el que las
variable x e y controlan el bucle
bucle::

@  A

A
BB/C
@  A
ABB/C
I I
J
 3& )
 

 
 
3K<
3K <& )K
)K<
< 3Q)A
3Q)AG<<
G<< QQ3& QQ)
 %
  % & 3Q)
3Q)
 /
 / 
P
Instrucción for
Este programa imprime los números del 0 al 98
incrementándose en 2. obsérvese las comas que separan
las secciones de inicialización e incremento
incremento..

La coma realmente es un operador de C que significa


esencialmente ³haz esto y esto´
esto´.. Cada vez que se pasa
por el bucle, la computadora incrementa 3 e ). Ambos
pueden ser los valores correctos para determinar el bucle
bucle..

La expresión condicional no tiene necesariamente que


comprobar la variable de control del bucle frente a un
valor.. De hecho, la condición puede ser cualquier
valor
condición válida de C.

Por ejemplo, el siguiente programa ayuda a un niño a


ejercitarse con la suma
suma.. Sin embargo, si el niño se cansa y
quiere para simplemente, teclea N cuando se le pregunta
por más
más.. La expresión condicional hace que  se ejecute
hasta 99 veces o hasta que el usuario responda N
@  A

A
B
B/C
@  A
AB
B/C
@  A )
A ) B
B/C
I I
J
 & 1& 




/
KR S
 

 

KG
KG AG<< ''
KRS
AG<<
KRS QQ
J
1KG
1KG 1A
1AG<
G<
 1QQ
J
 
 %
% Q % K & & 1
1

%

%& '

'



 K Q1  ETT-T
 ETT-T



 -TTE-
 -TTE-


P
  #
  #$$ 



K  U  / 

K  U  / 
 
 
MMMMMMMMMMM
MMMMMMMMMMM


P
 /
 /
P
Instrucción for: bucle infinito
Uno de los usos más interesantes para el bucle  es crear un
bucle infinito
infinito.. Debido a que ninguna de las tres expresiones que
forman el bucle  se dan, se puede hacer un bucle sin fin
teniendo la expresión condicional vacía
vacía.. Como se muestra en el
ejemplo::
ejemplo

@  A

A
B
B/C
@  A
AB
B/C
I I
J
 

 




 E
 
 V 


 /
 /
P

La construcción  no crea necesariamente un bucle infinito ya


que la sentencia  & de C, cuando se encuentra en el cuerpo
de un bucle, provoca la terminación inmediata y el control de
programa pasaría al código que sigue al bucle, como se
muestra en el ejemplo
ejemplo::
Instrucción for: bucle infinito
@  A

A
BB/C
@  A
ABB/C
@  A )
A ) BB/C

I I
J
/ /
/

 

 
 

 

J
/K  U  / 
/K  U  /   rr4 V 
/KKRS
 W
 W  rr.  

*
P
     **

 /
 / 
P
Instrucción for: bucle de retardo
Como definimos por la sintaxis de C, una sentencia
puede ser vacía
vacía.. Esto significa que el cuerpo del  (o
cualquier otro bucle) puede ser vacío
vacío.. Se puede usar este
efecto para mejorar la eficacia de ciertos algoritmos, así
como crear bucles de retardos
retardos..

La sentencia siguiente muestra como crear un retardo de


tiempo usando  :

Ȱ


 K< Î È

Donde  Ȱ


È dependerá del retardo que
deseemos..
deseemos
III. Estructuras de control

3.5 Bucle while


Instrucción while
El segundo bucle disponible en C es el (
(.. Su formato
general es
es::

$u   
$u    
  

donde a
a como establecimos antes, puede ser
una sentencia vacía, una sentencia única o un bloque de
sentencias (entre { y }) que se repetirán
repetirán..

La a a puede ser cualquier condición válida


válida..

El bucle se ejecuta mientras la    sea verdad


verdad..
Cuando llega a ser falsa, el control del programa pasa a
la línea que sigue al bucle
bucle..
Instrucción while
Como con el bucle  ,, el bucle ( comprueba la
condición en lo alto del bucle, lo que significa que el
código del mismo no se ejecuta siempre
siempre.. Debido a lo
anterior, el ( es bueno para situaciones donde no se
quiere ejecutar el bucle
bucle..

La representación de la instrucción ( en un diagrama


de flujo es la siguiente
siguiente::

V
!



aa aa 


III. Estructuras de control

3.6 Bucle do/while


Instrucción do/while
Al contrario de los bucles  y ( que comprueban la
condición en lo alto del bucle, el bucle 0( la
examina en la parte baja del mismo
mismo.. Esta característica
provoca que un bucle 0( siempre se ejecuta al
menos una vez
vez.. La forma general del bucle 0( es
es::




  
-$u    

Aunque no son necesarias las llaves cuando sólo está


presenta una sentencia, se usan normalmente por
legibilidad y para evitar confusión (por parte del lector, no
por el compilador) con el (
Instrucción do/while
Quizá el uso más común para el 0( es una rutina
de selección en un menú
menú.. Debido a que normalmente se
quiere una rutina de selección de un menú para
ejecutarse al menos una sola vez, el bucle 0( es
una selección obvia
obvia..

La representación, un un diagrama de flujo, del bucle


0( es la siguiente
siguiente::

aa aa 


!

V
Bucles anidados
Cuando un bucle está dentro de otro, el bucle más interno se
dice que está anidado
anidado.. El siguiente programa visualiza las
primeras cuatro potencias enteras de los números 1 al 9:
@  AB/C
@  A
B/C
@  A /B/C
I I
J
 & 1& 
 

 D   H  =  OD
 D MMMMMMMMMMMMMMMMMMMMMMMMMMMMMD
K    

K 

KU&1
 D%>D& 

 DD

 D -     BBBD
 /
P
Rompiendo un bucle: break
La sentencia  & tiene dos usos
usos.. El primer uso es terminar un

 en la sentencia
 (

 (.. El segundo es forzar la terminación
inmediata de un bucle, saltando la prueba condicional normal del
bucle..
bucle
Cuando se encuentra la sentencia  & en un bucle, la
computadora termina inmediatamente el bucle y el control del
programa vuelve a la sentencia siguiente del bucle
bucle.. Por ejemplo
ejemplo::
@  AB/C
@  A
B/C
I I
J
 
 

K 




 D%D& 
 KKG< !

 D -     BBBD
 /
P
Rompiendo un bucle: break
Es importante entender que un  & provocará una salida
del bucle más interno
interno::
@  AB/C
@  A
B/C
I I
J
 &  &   K<
 

 DD
K     
  QQ
 D K % KKKKC D& 
 KG
K  
 D %D&  
 QQ
 KKG<
!

 DD
  KKG; J
 /
 

 DD
  K<
P

 D -     BBBD
 /
P
Sentencia continue
La sentencia  funciona de manera similar a la sentencia
 &.. Sin embargo, en vez de forzar al rompimiento, 
 &
fuerza la siguiente iteración y salta cualquier código medio
medio..
Por ejemplo, el siguiente programa visualizará sólo los números
pares::
pares
@  AB/C
@  A
B/C

I I
J
 3
 

K """
J
3%H  

 D%D& 3
P
 D -     BBBD
 /
P
Sentencia continue
En los bucles ( y 0(
0(,, una sentencia 
provoca que el control del programa vaya directamente
a la prueba condicional y después continúe el proceso
del bucle
bucle..

En el caso del 


,, la computadora realiza primero la
parte de incremento o decremento del bucle y después
la prueba condicional, después continúa finalmente el
bucle..
bucle
III. Estructuras de control

3.7 Etiquetas y goto


Etiquetas y goto
El  es una instrucción que sirve para modificar el flujo de
un programa pero, a diferencia de las instrucciones de control
de bucle, éste no necesita condición
condición..
El  requiere una etiqueta para funcionar
funcionar.. Una etiqueta es
un identificador válido en C que se sigue por dos puntos
puntos.. La
etiqueta debe estar en la misma función que usa el 
.. Por
ejemplo::
ejemplo
@  AB/C
@  A
B/C
I I
J
 3K<& )K<
 

 D D
  #
3QQ
 D%= D& 3
)QQ
)KKG< J
 D D
)K<
P
3AG<< $
  
 D -     BBBD
 /
P
Etiquetas y goto
Un buen momento para usar  es cuando se
requiere salir de varias capas de anidación
anidación.. Por
ejemplo::
ejemplo

BBB J
BBB J
U/ BBB J
BBB $


B
B
B
P
P
P

#

 


Con lo anterior eliminamos la condición ()) y el  &


que se haría si se cumple dicha condición
condición..
IV. Arreglos y cadenas

4.1 Arreglos unidimensionales


Arrays
Un arreglo es una colección de variables del mismo
tipo que se referencian utilizando un nombre común
común..
En Turbo C, un array consta de posiciones de memoria
contiguas.. La dirección más baja corresponde al primer
contiguas
elemento y la más alta al último
último..
Un array puede tener una o varias dimensiones
dimensiones.. Para
acceder a un elemento específico de un array se usa
un índice
índice..
El array que se usará más frecuentemente es el de
caracteres, para manejas cadenas
cadenas..
Los array son muy comunes en programación porque
permiten tratar fácilmente muchas variables
relacionadas..
relacionadas
Arrays unidimensionales
El formato general para la declaración de un array
unidimensional es
es::

   ° u&'

Aquí  declara el   


 del array
array.. El  

determina el tipo de datos de cada elemento del array
array.. El  
define cuántos elementos guardará
guardará..

Por ejemplo, la siguiente instrucción declara un array de


enteros llamado ejemplo de diez elementos
elementos::

 1  XG<Y

En C, todos los arrays usan cero como índice del primer


elemento.. En el ejemplo anterior tenemos 10 elementos
elemento elementos::
1  X<
1  X <Y a 1  X:].
1  X:
IV. Arreglos y cadenas

4.2 Cadenas
Cadenas
En C, una cadena consta de un array de caracteres que
termina en un nulo
nulo.. Un nulo se especifica como µ\0¶ y en Turbo
C es cero
cero.. Por esta razón se debe declarar arrays de
caracteres con un carácter más que la cadena más larga que
se vaya a guardar
guardar.. Por ejemplo, si se quiere declarar un array
 que guarde una cadena de diez caracteres, se tiene
que escribir
escribir::

aa&(('

La mejor manera de introducir una cadena desde el teclado es


usando la función de biblioteca 
 . El formato general
de 
  es
es::

   ) 

Para imprimir la cena de caracteres se utiliza la función


   con la sintaxis que ya hemos manejado, sólo que
se utiliza la bandera de formato %
, o bien
  2)..
  2)
Cadenas
Turbo C soporta un amplio rango de funciones de manipulación
de cadenas
cadenas.. Las más comunes son
son::

a)
a
a
u

Las funciones de cadena utilizan todas el mismo archivo


cabecera:: STRING
cabecera STRING..H.
Cadenas: strcpy( )
Una llamada a strcpy( ) tiene este formato general
general::

a) *

Esta función se utiliza para copiar los contenidos de la cadena



 a la cadena . El array que forma debe ser lo
suficientemente grande para guardar 
 
.. Si a no es lo
suficientemente grande, el array se desbordará y
probablemente se dañe el programa
programa..

Cadenas: strcat( )
Una llamada a strcat( ) tiene este formato general
general::

a a(*a+

Esta función añade 


 ** al final de  )
 ); 
 ** no
se altera
altera.. Ambas cadenas terminan con un nulo y el resultado
termina en nulo
nulo..
Cadenas: strcmp( )
Una llamada a strcmp( ) tiene este formato general
general::
a a(*a+
Esta función compara dos cadenas y devuelve 0 si son
iguales.. Si cadena
iguales cadena11 es lexicográficamente mayor que
cadena2
cadena 2, la función devuelve un número positivo, si cadena
cadena11
es menor que cadenacadena2
2, la función devuelve un número
negativo..
negativo
Como strcmp( ) devuelve falso cuando coinciden las cadenas,
se puede usar el operador NOT si se desea hacer algo
cuando las cadenas son iguales
iguales..

Cadenas: strlen( )
Una llamada a strlen( ) tiene este formato general
general::
u a
Esta función devuelve la longitud de la cadena que apunta
 .. La función strlen( ) no cuenta el terminador nulo
 nulo..
IV. Arreglos y cadenas

4.3 Arreglos bidimensionales


Arrays bidimensionales
C permite arrays multidimensionales
multidimensionales.. La forma más sencilla de
array multidimensional es la de dos dimensiones
dimensiones.. En esencia
un array bidimensional es un array de arrays unidimensionales
unidimensionales..
Para declarar un array de enteros bidimensional
dos 


dos 

de tamaño 5, 8, se escribiría
  &,'&-'

Primer índice Segundo índice

0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7

1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7

2,0 2,1 2,2 2,3 2,4 2,5 2,6 2,7

3,0 3,1 3,2 3,3 3,4 3,5 3,6 3,7

4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7


Arrays de cadenas
Para crear un array de cadenas, se usa un array de caracteres
de dos dimensiones, en la que el tamaño del índice izquierdo
determina el número de cadenas y el tamaño del derecho
especifica la longitud máximade cada cadena
cadena..

Por ejemplo, esto declara un array de 30 cadenas con cada


cadena como máximo de 80 caracteres
caracteres::
a)a&./'&-('
El acceso a una cadena individual es muy fácil
fácil:: simplemente
se especifica sólo el índice izquierdo
izquierdo.. Por ejemplo, esta
sentencia guarda un dato en la tercera cadena de
 È 

 È 
::
 )a&+' 
Inicialización de arrays
El formato general de la inicialización de un array es similar al
de otras variables, según se muestra aquí
aquí::
   )&('&'01u
 )&('&'01u22°u 3

La lista de valores es una lista separada por comas de


constantes que son de tipo compatible con el tipo base del
array..
array

El ejemplo siguiente inicializa un array de diez elementos


enteros con los números del 1 al 10
10::
 XG<Y K JG& H& =& O& ;& ?& N& >& :& G<P

Los arrays de caracteres que guardan cadenas permiten una


inicialización abreviada que tiene la forma
forma::
a  )&'04a5
El siguiente ejemplo inicializa el array de caracteres   
con la oración 1 2 
2 ::
/  XGGY K   (
Inicialización de arrays
Se inicializan arrays multidimensionales de la misma manera
que las de una dimensión
dimensión.. Por ejemplo, lo siguiente inicializa


con los números del 1 al 10 y sus cuadrados
cuadrados::


X


XG<
G<YX
YXH
HY K J
G& G&
H& O&
=& :&
O& G?
G?&
&
;& H;
H;&
&
?& =?
=?&
&
N& O:
O:&
&
>& ?O
?O&
&
:& >G
>G&
&
G<&
G<& G<<
P
Inicialización de arrays sin tamaño

Es cansado contar los caracteres de cada mensaje


manualmente para determinar la dimensión correcta del array
array..
Se puede dejar a Turbo C la dimensión automáticamente de
estos arrays usando arrays sin tamaño, esto se logra no
ponindo ningún valor dentro de los corchetes
corchetes::
a  )&'04a5
El siguiente ejemplo inicializa el array de caracteres   
con la oración 1 2 
2 ::
/  XY K   (
Inicialización de arrays sin tamaño
Lo mismo pasa con los arrays multidimensionales, solo que
aquí hay que especificar la dimensión de más a la izquierda
izquierda::



XYX


XYXH
HY K J
G& G&
H& O&
=& :&
O& G?
G?&
&
;& H;
H;&
&
?& =?
=?&
&
N& O:
O:&
&
>& ?O
?O&
&
:& >G
>G&
&
G<&
G<& G<<
P
Inicialización de arrays sin tamaño

/  
XY K J
1&
 &
I  &
6 &
I &
P

/  
XYX
 
XYXG;
G;Y
Y K J
1&
 &
I  &
6 &
I &
P

También podría gustarte