Todos devem saber que é perfeitamente possível a criação
de novos nomes para qualquer tipo suportado pelo C usando
o comando typedef cuja sintaxe é: typedef tipo ( novo_nome ).
A declaração de um novo nome para um tipo qualquer aceito,
é preferivelmente feito logo após as declarações das bibliotecas
que serão utiizadas pelo seu programa.
O aprendiz de linguagem C, deve ficar sabendo que com isto
não estamos criando um novo tipo de dados, más apenas renomeando
um tipo existente e aceito no C.
Um programador de C, deve achar isto particularmente muito útil usar
O comando typedef para renomear tipos mais complexos, como as estruturas.
As estruturas criadas no exemplo que trago agora foram bem definidas
como tipos através do comando typedef.
Na verdade o C, entende uma estrutura como qualquer outro tipo de dado,
e o novo nome é tido como um genuíno identificador.
Aplicar typedef em declarações de variáveis estrutura, traz simplicidade
e clareza no desenvolvimento de projetos, e o seu uso se estende
as uniões e enumerações.
Neste programa fiz algumas renomeações de tipos usando
o comando typedef, aplicado a alguns tipos de estrutura, procurando
esclarecer na prática como usar este comando
que certamente o veremos muito na medida que nossos programas
forem ficando mais avançados.
Veja abaixo o código do programa:
de novos nomes para qualquer tipo suportado pelo C usando
o comando typedef cuja sintaxe é: typedef tipo ( novo_nome ).
A declaração de um novo nome para um tipo qualquer aceito,
é preferivelmente feito logo após as declarações das bibliotecas
que serão utiizadas pelo seu programa.
O aprendiz de linguagem C, deve ficar sabendo que com isto
não estamos criando um novo tipo de dados, más apenas renomeando
um tipo existente e aceito no C.
Um programador de C, deve achar isto particularmente muito útil usar
O comando typedef para renomear tipos mais complexos, como as estruturas.
As estruturas criadas no exemplo que trago agora foram bem definidas
como tipos através do comando typedef.
Na verdade o C, entende uma estrutura como qualquer outro tipo de dado,
e o novo nome é tido como um genuíno identificador.
Aplicar typedef em declarações de variáveis estrutura, traz simplicidade
e clareza no desenvolvimento de projetos, e o seu uso se estende
as uniões e enumerações.
Neste programa fiz algumas renomeações de tipos usando
o comando typedef, aplicado a alguns tipos de estrutura, procurando
esclarecer na prática como usar este comando
que certamente o veremos muito na medida que nossos programas
forem ficando mais avançados.
Veja abaixo o código do programa:
#include <stdio.h>
#include <conio.h>
typedef char Dirigente;
typedef char Nombre;
typedef struct Diretor Direcao;
typedef struct Notas Note;
typedef float dec;
typedef struct Escola Aula;
void got_color ( int tam_lin_ini, int tam_lin_fim, int tam_ini_col,
int tam_fim_col, int a, int b ) {
int i, e;
if ( a >= 1 && a <= 16 ) {
textcolor ( a );
}
if ( b >= 1 && b <= 16 ) {
textbackground ( b );
}
for ( i = tam_lin_ini; i < tam_lin_fim; i++ ) {
for ( e = tam_ini_col; e < tam_fim_col; e++ ) {
gotoxy ( e, i );
printf ( " " );
}
}
}
struct Diretor {
Dirigente Dire_tor [ 48 ];
};
Direcao Diretor_De_Escola [ 48 ] = { {
"Um Diretor de Escola da rede
Estadual de ensino" }, {
"listou seus 10 melhores
alunos" }, {
"Pressione qualquer tecla para
conhece - los" } };
struct Notas {
dec No_tas;
};
Note Aluno [ ] = { 9.5, 8.9, 6.4, 7.5, 8.0, 7.7, 6.9, 9.0, 10.0, 8.5 };
struct Escola {
Nombre nome [ 16 ];
};
Aula Alu_no [ ] = { { "Ana
Célia " },
{ "Eder
Costa " },
{ "Humberto
Gomes " },
{ "Dijalma
Lacerda" },
{ "Caroline
Silva " },
{ "Igor
Gonçalves " },
{ "Bruna
Carla " },
{ "Fábio
Quadros " },
{ "Geany
Barros " },
{ "Jaqueline
Vega " }};
int main ( ) {
system ( "title TYPEDEF - RENOMEANDO TIPOS" );
int a = 0, i, j, ord;
float aux;
system ( "cls" );
got_color ( 2, 25, 3, 79, 2, 15 ); //Moldura
textcolor ( LIGHTRED );
gotoxy ( 28, 3 );
printf ( "TYPEDEF - RENOMEANDO TIPOS" );
for ( i = 0; i < 2; i++ ) {
gotoxy ( 17, i + 7 );
textcolor ( LIGHTBLUE );
if ( i == 48 ) {
gotoxy ( 17, 9 );
}
printf ( " %s ", Diretor_De_Escola [ i ]
.Dire_tor );
textcolor ( LIGHTRED );
gotoxy ( 20, 17 );
printf ( " %s ", Diretor_De_Escola [ 2 ]
.Dire_tor );
}
getche ( );
system ( "cls" );
got_color ( 2, 25, 3, 79, 2, 11 ); //Moldura
textcolor ( LIGHTRED );
gotoxy ( 28, 3 );
printf ( "TYPEDEF -
RENOMEANDO TIPOS" );
textcolor ( LIGHTBLUE );
gotoxy ( 25, 5 );
printf ( "Veja abaixo
os nomes dos Alunos " );
textcolor ( BLACK );
for ( i = 0; i < 10; i++ ) {
gotoxy ( 33, i + 7 );
printf ( " %s ", Alu_no [ i ]
.nome );
}
for ( i = 0; i < 10 - 1; i++ ) {
for ( j = i + 1; j < 10; j++ ) {
if ( strcmp ( Alu_no [ i ]
.nome, Alu_no [ j ]
.nome ) > 0 ) {
Escola aux = Alu_no [ i ];
Alu_no [ i ] = Alu_no [ j ];
Alu_no [ j ] = aux;
}
}
}
textcolor ( LIGHTRED );
gotoxy ( 30, 23 );
printf ( "PRESSIONE
QUALQUER TECLA" );
getche ( );
system ( "cls" );
got_color ( 2, 25, 3, 79, 2, 13 ); //Moldura
textcolor ( LIGHTRED );
gotoxy ( 30, 3 );
printf ( "TYPEDEF - RENOMEANDO TIPOS" );
textcolor ( LIGHTBLUE );
gotoxy ( 23, 5 );
printf ( "Estes são os
nomes dos alunos ordenados" );
textcolor ( BLACK );
for ( i = 0; i < 10; i++ ) {
gotoxy ( 33, i + 7 );
printf ( " %s ", Alu_no [ i ]
.nome );
}
textcolor ( LIGHTRED );
gotoxy ( 30, 23 );
printf ( "PRESSIONE QUALQUER TECLA" );
getche ( );
system ( "cls" );
got_color ( 2, 25, 3, 79, 2, 15 ); //Moldura
textcolor ( LIGHTRED );
gotoxy ( 28, 3 );
printf ( "TYPEDEF - RENOMEANDO TIPOS" );
textcolor ( LIGHTBLUE );
gotoxy ( 23, 5 );
printf ( "Abaixo estão
os Nomes e as notas dos alunos" );
for ( i = 0; i < 10; i++ ) {
gotoxy ( 27, i + 7 );
textcolor ( BLACK );
printf ( " %s ==> ", Alu_no [ i ]
.nome );
textcolor ( LIGHTRED );
printf ( " %.1f ", Aluno [ i ]
.No_tas );
}
textcolor ( LIGHTRED );
gotoxy ( 30, 23 );
printf ( "PRESSIONE QUALQUER TECLA" );
getche ( );
system ( "cls" );
got_color ( 2, 25, 3, 79, 2, 14 ); //Moldura
textcolor ( LIGHTRED );
gotoxy ( 28, 3 );
printf ( "TYPEDEF -
RENOMEANDO TIPOS" );
textcolor ( LIGHTBLUE );
gotoxy ( 28, 5 );
printf ( "Estas são as
notas dos alunos" );
textcolor ( LIGHTRED );
gotoxy ( 18, 7 );
for ( i = 0; i < 10; i++ ) {
printf ( " %.1f ", Aluno [ i ]
.No_tas );
}
ord = 0;
while ( ord == 0 ) {
ord = 1;
for ( a = 0; a < 10; a++ ) {
if ( Aluno [ a ]
.No_tas > Aluno [ ( a + 1 ) ]
.No_tas ) {
aux = Aluno [ a ]
.No_tas;
Aluno [ a ]
.No_tas = Aluno [ ( a + 1 ) ]
.No_tas;
Aluno [ ( a + 1 ) ]
.No_tas = aux;
ord = 0;
}
}
}
getche ( );
textcolor ( LIGHTBLUE );
gotoxy ( 25, 9 );
printf ( "Estas são as
notas dos alunos ordenadas" );
textcolor ( LIGHTRED );
gotoxy ( 18, 11 );
for ( a = 1; a <= 10; a++ ) {
printf ( " %.1f ", Aluno [ a ]
.No_tas );
}
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 26, 18 );
printf ( "Por: " );
textcolor ( LIGHTBLUE );
printf ( "Samuel Lima" );
textcolor ( BLACK );
gotoxy ( 26, 20 );
printf ( "sa_sp10@hotmail.com" );
Sleep ( 1800 );
textcolor ( LIGHTRED );
gotoxy ( 37, 23 );
printf ( "MUITO
OBRIGADO" );
getche ( );
}
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.