SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
Algoritmos e Programação I
Exercício-Programa 3
Marcelo Hashimoto
19 de março de 2013
1 Introdução
Neste Exercício-Programa você vai implementar um codificador e decodificador hexadecimal, baseado princi-
palmente nos conceitos de vetores e strings. Não é permitido o uso de qualquer conceito que tenha sido ensinado
depois da Semana 11 de aula.
Parte da correção deste exercício será feita automaticamente, portanto é fundamental que a entrada e a saída
do seu programa sejam exatamente como a especificação pede.
2 Caracteres como inteiros
Conceitualmente, variáveis do tipo char armazenam caracteres como ’a’, ’b’ e ’c’. Tecnicamente, no en-
tanto, o que elas armazenam são códigos numéricos que representam caracteres. Você pode facilmente descobrir
que códigos são esses se atribuir o valor de um char a um int.
char c;
int i;
c = ’a’;
i = c;
printf("%dn", i);
Se você executar o programa acima, poderá verificar que ele imprime o código 97. Substituindo ’a’ por ’b’,
ele imprime 98. Os códigos para todas os caracteres do alfabeto latino podem ser vistos na tabela abaixo.
A 65 N 78 a 97 n 110
B 66 O 79 b 98 o 111
C 67 P 80 c 99 p 112
D 68 Q 81 d 100 q 113
E 69 R 82 e 101 r 114
F 70 S 83 f 102 s 115
G 71 T 84 g 103 t 116
H 72 U 85 h 104 u 117
I 73 V 86 i 105 v 118
J 74 W 87 j 106 w 119
K 75 X 88 k 107 x 120
L 76 Y 89 l 108 y 121
M 77 Z 90 m 109 z 122
3 Inteiros como caracteres
Repare que todos os códigos numéricos acima estão entre 0 e 255. Para qualquer inteiro n nesse intervalo,
existem dois inteiros, x e y, entre 0 e 15 tais que
n = 16x + y.
Descobrir esses dois inteiros é fácil: ao dividir n por 16, obtemos x como quociente e y como resto. Considere
agora a seguinte representação dos inteiros entre 0 e 15 como caracteres:
0 representado por ’0’; 8 representado por ’8’;
1 representado por ’1’; 9 representado por ’9’;
2 representado por ’2’; 10 representado por ’A’;
3 representado por ’3’; 11 representado por ’B’;
4 representado por ’4’; 12 representado por ’C’;
5 representado por ’5’; 13 representado por ’D’;
6 representado por ’6’; 14 representado por ’E’;
7 representado por ’7’; 15 representado por ’F’.
Podemos concluir que, sob o esquema acima, qualquer inteiro entre 0 e 255 pode ser representado por dois
caracteres dentro do conjunto H = {’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’A’, ’B’, ’C’, ’D’, ’E’, ’F’}.
4 Codificação
A partir das duas seções anteriores, considere a seguinte sequência de transformações:
caractere latino → inteiro entre 0 e 255 → dois inteiros entre 0 e 15 → dois caracteres em H.
Alguns exemplos dessa sequência são dados a seguir:
’A’ → 65 → 4 e 1 → ’4’ e ’1’
’R’ → 82 → 5 e 2 → ’5’ e ’2’
’i’ → 105 → 6 e 9 → ’6’ e ’9’
’z’ → 122 → 7 e 10 → ’7’ e ’A’
5 Decodificação
Analogamente, podemos considerar a sequência inversa de transformações:
dois caracteres em H → dois inteiros entre 0 e 15 → inteiro entre 0 e 255 → caractere latino.
Exemplos análogos aos anteriores são dados a seguir:
’4’ e ’1’ → 4 e 1 → 65 → ’A’
’5’ e ’2’ → 5 e 2 → 82 → ’R’
’6’ e ’9’ → 6 e 9 → 105 → ’i’
’7’ e ’A’ → 7 e 10 → 122 → ’z’
6 Especificação
Seu programa deve executar exatamente as seguintes operações.
1. Imprime a string "Digite 1 para codificar e 2 para decodificar: ". Deve haver exatamente um
espaço no final e não deve haver quebra de linha.
2. Recebe um inteiro do usuário através da função scanf com %d. Você pode supor que o usuário de fato
digitará 1 ou 2, sem se preocupar em repetir o pedido ou corrigir a entrada.
3. Executa o código a seguir, que será explicado em aula:
do {
scanf("%c", &c);
} while(c != ’n’);
4. Imprime a string "Digite o texto: ". Deve haver exatamente um espaço no final e não deve haver
quebra de linha.
5. Recebe uma linha de texto do usuário através da função fgets.
(a) Se o inteiro recebido no Item 2 foi 1, você pode supor que o usuário digitará uma linha de texto com
no máximo 25 caracteres sem contar a quebra de linha. Além disso, pode supor que cada um desses
caracteres será ou um dos 52 latinos da Seção 2 ou um dos seis abaixo.
32 , 44
! 33 . 46
" 34 ? 63
(b) Se o inteiro recebido no Item 2 foi 2, você pode supor que o usuário digitará uma linha de texto com
no máximo 50 caracteres sem contar a quebra de linha. Além disso, pode supor que cada um desses
caracteres será do conjunto H e que o total será par.
6. Imprime uma linha de texto.
(a) Se o inteiro recebido no Item 2 foi 1, essa linha impressa é a codificação da linha que o usuário digitou,
segundo o processo descrito na Seção 4. A quebra de linha deve ser desconsiderada.
(b) Se o inteiro recebido no Item 2 foi 2, essa linha impressa é a decodificação da linha que o usuário
digitou, segundo o processo descrito na Seção 5. A quebra de linha deve ser desconsiderada.
7. Termina.
7 Exemplos
Seguem dois exemplos de execução. Os trechos em vermelho indicam entrada do usuário.
Digite 1 para codificar e 2 para decodificar: 1
Digite o texto: Hello World!
48656C6C6F20576F726C6421
Digite 1 para codificar e 2 para decodificar: 2
Digite o texto: 48656C6C6F20576F726C6421
Hello World!
8 Detalhes de entrega
• Este exercício deve ser feito individualmente ou em grupo de 2 a 3 alunos.
• O programa deve ser entregue pelo Blackboard até as 23:50 do dia 11 de maio.
• Entregue apenas um arquivo de código-fonte, como anexo e com extensão c.
O enunciado foi projetado para um prazo menor do que o estabelecido acima. Você pode entregar em cima da
hora, mas problemas técnicos do Blackboard não serão aceitos como justificativa para atrasos.
9 Critérios de correção
Ao entregar seu trabalho, verifique se nenhum dos problemas abaixo ocorre.
• Grupo com mais de 3 alunos: nota zero.
• Entrega atrasada: nota zero.
• Arquivos a mais: nota zero.
• Entrega não é anexo: nota zero.
• Entrega não tem extensão c: nota zero.
• Erro durante compilação: nota zero.
• Aviso durante compilação: desconto de 1.0 ponto por aviso.
• Uso de conceito ensinado depois da Semana 11: nota zero.
• Uso de conceito que não foi ensinado: nota zero.
• Não cumpre requisitos do enunciado: nota zero.
Se qualquer tipo de plágio for constatado, todos os membros de todos os grupos envolvidos no mínimo rece-
berão nota zero. Outras punições adicionais ainda poderão ser estabelecidas posteriormente pela coordenação.

Mais conteúdo relacionado

Mais procurados

Linguagem C (Parte 2)
Linguagem C (Parte 2)Linguagem C (Parte 2)
Linguagem C (Parte 2)Daniel Barão
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosRegis Magalhães
 
Introdução a linguagem c 2_97_2003
Introdução a linguagem c  2_97_2003Introdução a linguagem c  2_97_2003
Introdução a linguagem c 2_97_2003Henoc Freire
 
Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Ismar Silveira
 
Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04thomasdacosta
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Leandro Rezende
 

Mais procurados (10)

Linguagem C (Parte 2)
Linguagem C (Parte 2)Linguagem C (Parte 2)
Linguagem C (Parte 2)
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Algop - aula 07 resposta exercícios
Algop - aula 07 resposta exercíciosAlgop - aula 07 resposta exercícios
Algop - aula 07 resposta exercícios
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
Introdução a linguagem c 2_97_2003
Introdução a linguagem c  2_97_2003Introdução a linguagem c  2_97_2003
Introdução a linguagem c 2_97_2003
 
Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3Paradigmas de Linguagens de Programacao - Aula #3
Paradigmas de Linguagens de Programacao - Aula #3
 
Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04Algoritmos e Técnicas de Programação - Aula 04
Algoritmos e Técnicas de Programação - Aula 04
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
Strings Python
Strings PythonStrings Python
Strings Python
 

Destaque

Programação 19º seminário 2015
Programação 19º seminário 2015Programação 19º seminário 2015
Programação 19º seminário 2015STAB Setentrional
 
Condições gerais produção de filmes
Condições gerais   produção de filmesCondições gerais   produção de filmes
Condições gerais produção de filmesEspaço Allianz
 
concepto de internet Ventajas y desventajas
concepto de internet Ventajas y desventajasconcepto de internet Ventajas y desventajas
concepto de internet Ventajas y desventajasfaustocalderonb
 
Manual tranquilidade familiar finalizado
Manual tranquilidade familiar finalizadoManual tranquilidade familiar finalizado
Manual tranquilidade familiar finalizadoEspaço Allianz
 
253 publicacao09042012101719
253 publicacao09042012101719253 publicacao09042012101719
253 publicacao09042012101719Amanda Fraga
 
Estadísticas de primer ingreso
Estadísticas de primer ingresoEstadísticas de primer ingreso
Estadísticas de primer ingresocardonakarina
 
2ª aula da escola dominical 2 trimestre 2013
2ª aula da escola dominical 2 trimestre 20132ª aula da escola dominical 2 trimestre 2013
2ª aula da escola dominical 2 trimestre 2013ANDRÉ TEIXEIRA
 
As cinco maravilhass
As cinco maravilhassAs cinco maravilhass
As cinco maravilhassGeorgeNet
 
Caderno diário a grande depressão n.º 18 1415
Caderno diário a grande depressão n.º 18 1415Caderno diário a grande depressão n.º 18 1415
Caderno diário a grande depressão n.º 18 1415Laboratório de História
 
Demografiamedicanobrasil
DemografiamedicanobrasilDemografiamedicanobrasil
DemografiamedicanobrasilSuzy Dos Reis
 
Proposta de Adesao Acidentes Pessoais Coletivo
 Proposta de Adesao Acidentes Pessoais Coletivo Proposta de Adesao Acidentes Pessoais Coletivo
Proposta de Adesao Acidentes Pessoais ColetivoEspaço Allianz
 
Pp tranquilidade familiar atualiza prêmio (jmc)
Pp tranquilidade familiar atualiza prêmio (jmc)Pp tranquilidade familiar atualiza prêmio (jmc)
Pp tranquilidade familiar atualiza prêmio (jmc)Espaço Allianz
 

Destaque (20)

Programação 19º seminário 2015
Programação 19º seminário 2015Programação 19º seminário 2015
Programação 19º seminário 2015
 
Condições gerais produção de filmes
Condições gerais   produção de filmesCondições gerais   produção de filmes
Condições gerais produção de filmes
 
concepto de internet Ventajas y desventajas
concepto de internet Ventajas y desventajasconcepto de internet Ventajas y desventajas
concepto de internet Ventajas y desventajas
 
Pecha kuche
Pecha kuchePecha kuche
Pecha kuche
 
Biureto porteinas
Biureto porteinasBiureto porteinas
Biureto porteinas
 
Manual tranquilidade familiar finalizado
Manual tranquilidade familiar finalizadoManual tranquilidade familiar finalizado
Manual tranquilidade familiar finalizado
 
Grupo 7 (Hipertensão)
Grupo 7 (Hipertensão)Grupo 7 (Hipertensão)
Grupo 7 (Hipertensão)
 
253 publicacao09042012101719
253 publicacao09042012101719253 publicacao09042012101719
253 publicacao09042012101719
 
Case redemix
Case redemixCase redemix
Case redemix
 
Estadísticas de primer ingreso
Estadísticas de primer ingresoEstadísticas de primer ingreso
Estadísticas de primer ingreso
 
2ª aula da escola dominical 2 trimestre 2013
2ª aula da escola dominical 2 trimestre 20132ª aula da escola dominical 2 trimestre 2013
2ª aula da escola dominical 2 trimestre 2013
 
As cinco maravilhass
As cinco maravilhassAs cinco maravilhass
As cinco maravilhass
 
Caderno diário a grande depressão n.º 18 1415
Caderno diário a grande depressão n.º 18 1415Caderno diário a grande depressão n.º 18 1415
Caderno diário a grande depressão n.º 18 1415
 
Inicio
InicioInicio
Inicio
 
06 cultura para a sustentabilidade
06 cultura para a sustentabilidade06 cultura para a sustentabilidade
06 cultura para a sustentabilidade
 
Demografiamedicanobrasil
DemografiamedicanobrasilDemografiamedicanobrasil
Demografiamedicanobrasil
 
12 do local para o global
12 do local para o global12 do local para o global
12 do local para o global
 
Programa de Investimento em Logística - Aeroportos
Programa de Investimento em Logística - AeroportosPrograma de Investimento em Logística - Aeroportos
Programa de Investimento em Logística - Aeroportos
 
Proposta de Adesao Acidentes Pessoais Coletivo
 Proposta de Adesao Acidentes Pessoais Coletivo Proposta de Adesao Acidentes Pessoais Coletivo
Proposta de Adesao Acidentes Pessoais Coletivo
 
Pp tranquilidade familiar atualiza prêmio (jmc)
Pp tranquilidade familiar atualiza prêmio (jmc)Pp tranquilidade familiar atualiza prêmio (jmc)
Pp tranquilidade familiar atualiza prêmio (jmc)
 

Semelhante a Ep3

5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bitsRicardo Bolanho
 
Fundamentos da computação software evolução e conceito
Fundamentos da computação software evolução e conceitoFundamentos da computação software evolução e conceito
Fundamentos da computação software evolução e conceitoEriclys Moreira
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação CSchoolByte
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdfAlexSouza974126
 
Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9Pessoal
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfEnio Filho
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfvictorlopes714651
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cppRUI VIEIRA
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem cvingue
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 

Semelhante a Ep3 (20)

Questesdetecnologia ano2003
Questesdetecnologia ano2003Questesdetecnologia ano2003
Questesdetecnologia ano2003
 
Modulo02
Modulo02Modulo02
Modulo02
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bits
 
Algop - aula 03
Algop - aula 03Algop - aula 03
Algop - aula 03
 
Fundamentos da computação software evolução e conceito
Fundamentos da computação software evolução e conceitoFundamentos da computação software evolução e conceito
Fundamentos da computação software evolução e conceito
 
PHP - Strings
PHP - StringsPHP - Strings
PHP - Strings
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
unidade04-c3-handout.pdf
unidade04-c3-handout.pdfunidade04-c3-handout.pdf
unidade04-c3-handout.pdf
 
Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9Curso de ShellScript - Lm09 shellscript9
Curso de ShellScript - Lm09 shellscript9
 
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfAlgoritmos e LP - Aula 08 - Linguagem C - p1.pdf
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdf
 
Aula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdfAula 14 - Entrada e Saida em linguagem C.pdf
Aula 14 - Entrada e Saida em linguagem C.pdf
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
 
01 variaveis io if
01 variaveis io if01 variaveis io if
01 variaveis io if
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Linguagem_C.pdf
Linguagem_C.pdfLinguagem_C.pdf
Linguagem_C.pdf
 
Apostila c
Apostila cApostila c
Apostila c
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 

Ep3

  • 1. Algoritmos e Programação I Exercício-Programa 3 Marcelo Hashimoto 19 de março de 2013 1 Introdução Neste Exercício-Programa você vai implementar um codificador e decodificador hexadecimal, baseado princi- palmente nos conceitos de vetores e strings. Não é permitido o uso de qualquer conceito que tenha sido ensinado depois da Semana 11 de aula. Parte da correção deste exercício será feita automaticamente, portanto é fundamental que a entrada e a saída do seu programa sejam exatamente como a especificação pede. 2 Caracteres como inteiros Conceitualmente, variáveis do tipo char armazenam caracteres como ’a’, ’b’ e ’c’. Tecnicamente, no en- tanto, o que elas armazenam são códigos numéricos que representam caracteres. Você pode facilmente descobrir que códigos são esses se atribuir o valor de um char a um int. char c; int i; c = ’a’; i = c; printf("%dn", i); Se você executar o programa acima, poderá verificar que ele imprime o código 97. Substituindo ’a’ por ’b’, ele imprime 98. Os códigos para todas os caracteres do alfabeto latino podem ser vistos na tabela abaixo. A 65 N 78 a 97 n 110 B 66 O 79 b 98 o 111 C 67 P 80 c 99 p 112 D 68 Q 81 d 100 q 113 E 69 R 82 e 101 r 114 F 70 S 83 f 102 s 115 G 71 T 84 g 103 t 116 H 72 U 85 h 104 u 117 I 73 V 86 i 105 v 118 J 74 W 87 j 106 w 119 K 75 X 88 k 107 x 120 L 76 Y 89 l 108 y 121 M 77 Z 90 m 109 z 122 3 Inteiros como caracteres Repare que todos os códigos numéricos acima estão entre 0 e 255. Para qualquer inteiro n nesse intervalo, existem dois inteiros, x e y, entre 0 e 15 tais que n = 16x + y.
  • 2. Descobrir esses dois inteiros é fácil: ao dividir n por 16, obtemos x como quociente e y como resto. Considere agora a seguinte representação dos inteiros entre 0 e 15 como caracteres: 0 representado por ’0’; 8 representado por ’8’; 1 representado por ’1’; 9 representado por ’9’; 2 representado por ’2’; 10 representado por ’A’; 3 representado por ’3’; 11 representado por ’B’; 4 representado por ’4’; 12 representado por ’C’; 5 representado por ’5’; 13 representado por ’D’; 6 representado por ’6’; 14 representado por ’E’; 7 representado por ’7’; 15 representado por ’F’. Podemos concluir que, sob o esquema acima, qualquer inteiro entre 0 e 255 pode ser representado por dois caracteres dentro do conjunto H = {’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’, ’A’, ’B’, ’C’, ’D’, ’E’, ’F’}. 4 Codificação A partir das duas seções anteriores, considere a seguinte sequência de transformações: caractere latino → inteiro entre 0 e 255 → dois inteiros entre 0 e 15 → dois caracteres em H. Alguns exemplos dessa sequência são dados a seguir: ’A’ → 65 → 4 e 1 → ’4’ e ’1’ ’R’ → 82 → 5 e 2 → ’5’ e ’2’ ’i’ → 105 → 6 e 9 → ’6’ e ’9’ ’z’ → 122 → 7 e 10 → ’7’ e ’A’ 5 Decodificação Analogamente, podemos considerar a sequência inversa de transformações: dois caracteres em H → dois inteiros entre 0 e 15 → inteiro entre 0 e 255 → caractere latino. Exemplos análogos aos anteriores são dados a seguir: ’4’ e ’1’ → 4 e 1 → 65 → ’A’ ’5’ e ’2’ → 5 e 2 → 82 → ’R’ ’6’ e ’9’ → 6 e 9 → 105 → ’i’ ’7’ e ’A’ → 7 e 10 → 122 → ’z’ 6 Especificação Seu programa deve executar exatamente as seguintes operações. 1. Imprime a string "Digite 1 para codificar e 2 para decodificar: ". Deve haver exatamente um espaço no final e não deve haver quebra de linha. 2. Recebe um inteiro do usuário através da função scanf com %d. Você pode supor que o usuário de fato digitará 1 ou 2, sem se preocupar em repetir o pedido ou corrigir a entrada. 3. Executa o código a seguir, que será explicado em aula: do { scanf("%c", &c); } while(c != ’n’); 4. Imprime a string "Digite o texto: ". Deve haver exatamente um espaço no final e não deve haver quebra de linha.
  • 3. 5. Recebe uma linha de texto do usuário através da função fgets. (a) Se o inteiro recebido no Item 2 foi 1, você pode supor que o usuário digitará uma linha de texto com no máximo 25 caracteres sem contar a quebra de linha. Além disso, pode supor que cada um desses caracteres será ou um dos 52 latinos da Seção 2 ou um dos seis abaixo. 32 , 44 ! 33 . 46 " 34 ? 63 (b) Se o inteiro recebido no Item 2 foi 2, você pode supor que o usuário digitará uma linha de texto com no máximo 50 caracteres sem contar a quebra de linha. Além disso, pode supor que cada um desses caracteres será do conjunto H e que o total será par. 6. Imprime uma linha de texto. (a) Se o inteiro recebido no Item 2 foi 1, essa linha impressa é a codificação da linha que o usuário digitou, segundo o processo descrito na Seção 4. A quebra de linha deve ser desconsiderada. (b) Se o inteiro recebido no Item 2 foi 2, essa linha impressa é a decodificação da linha que o usuário digitou, segundo o processo descrito na Seção 5. A quebra de linha deve ser desconsiderada. 7. Termina. 7 Exemplos Seguem dois exemplos de execução. Os trechos em vermelho indicam entrada do usuário. Digite 1 para codificar e 2 para decodificar: 1 Digite o texto: Hello World! 48656C6C6F20576F726C6421 Digite 1 para codificar e 2 para decodificar: 2 Digite o texto: 48656C6C6F20576F726C6421 Hello World! 8 Detalhes de entrega • Este exercício deve ser feito individualmente ou em grupo de 2 a 3 alunos. • O programa deve ser entregue pelo Blackboard até as 23:50 do dia 11 de maio. • Entregue apenas um arquivo de código-fonte, como anexo e com extensão c. O enunciado foi projetado para um prazo menor do que o estabelecido acima. Você pode entregar em cima da hora, mas problemas técnicos do Blackboard não serão aceitos como justificativa para atrasos. 9 Critérios de correção Ao entregar seu trabalho, verifique se nenhum dos problemas abaixo ocorre. • Grupo com mais de 3 alunos: nota zero. • Entrega atrasada: nota zero. • Arquivos a mais: nota zero. • Entrega não é anexo: nota zero. • Entrega não tem extensão c: nota zero. • Erro durante compilação: nota zero.
  • 4. • Aviso durante compilação: desconto de 1.0 ponto por aviso. • Uso de conceito ensinado depois da Semana 11: nota zero. • Uso de conceito que não foi ensinado: nota zero. • Não cumpre requisitos do enunciado: nota zero. Se qualquer tipo de plágio for constatado, todos os membros de todos os grupos envolvidos no mínimo rece- berão nota zero. Outras punições adicionais ainda poderão ser estabelecidas posteriormente pela coordenação.