Turbo C
Turbo C
Introducción a la programación
Portabilidad
Compilador
El menú principal
·
·
! "
#$
%& ' £
(
% )
&
" %
%&
* + , - .
/ rr0
Estructura de un programa
ë a u
ÿaaa
ë a u
%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
'
&
2.1 Variables
Variables
O þ
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..
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
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
rr
3
@ A
B/C
@ AB/C
@
1 D -4* D
@ (E7.*8E D9,E7FE7,+-D
@ 8 G;?BH=
/
3
I I
I I rr05 I
J
KL*L
K=<<<
3KM<B:>N?=HNO;
rr05 I
D
, - . + E + * - .
D
1
(E7.*8E
D K %D&
D K %D&
D1 K %HB;D&8
D3 K %D&3
/
P
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
vás alta ++ --
- (unario)
* / %
vás baja + -
vás alta - ++ -- !
* / %
+ -
< < å å
!
&&
vás baja ||
Operadores
O è
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::
!"
"° #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::
#$%
textbackground
Se utiliza para establecer el color de fondo de las
operaciones siguientes a la instrucción
instrucción.. Su sintaxis es
es::
&
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
)
*
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..
!
)
u
*
if anidados
El
está enlazado con el más cercano que no tenga
ya una sentencia
asociada
asociada..
!
)
-
u
*
if anidados
La representación gráfica de los anidados es
es::
! ! !
V V V
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..
&
&
*+
-
&
&
*+
&
&
,
-
III. Estructuras de control
V
°u au!a
@ A
A
BB/C
@ A
ABB/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..
I I
J
3
3KG<<
3K G<< 3C
3C<< 3MM
MM
%
% & 3 3
/
/
P
I I
J
3
3K<
3K < 3AK
3AKG<<
G<< 3K3Q
3K3Q;;
%
% & 3 3
/
/
P
$
$ %&
P
/
/
P
@ A
A
BB/C
@ A
ABB/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..
@ A
A
B
B/C
@ A
AB
B/C
I I
J
E
V
/
/
P
I I
J
/ /
/
J
/KU /
/KU / 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..
Ȱ
K< Î È
$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..
V
!
-$u
!
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:
@ AB/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::
@ AB/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::
@ AB/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
@ AB/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..
BBB J
BBB J
U/ BBB J
BBB $
B
B
B
P
P
P
#
1 XG<Y
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&(('
)
a)
a
a
u
a)*
Cadenas: strcat( )
Una llamada a strcat( ) tiene este formato general
general::
aa(*a+
Cadenas: strlen( )
Una llamada a strlen( ) tiene este formato general
general::
ua
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
dos
de tamaño 5, 8, se escribiría
&,'&-'
È
::
)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
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
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