Linguagens de Programação - Atividade 13

Leia com atenção as instruções abaixo.

Preparação do Repositório.

Crie um repositório privado no GitHub. Repositórios públicos levaram nota zero automaticamente. Se seu nome for José Carlos Silva, o repositório deve ter o nome josecarloslip20202. Primeiro e segundo nome, sufixo lip20202, tudo minúsculo. É nele que devem ser colocados os arquivos. Convide o professor (jmarcelo.alencar@gmail.com) para ser colaborador do repositório. Faz parte da avaliação utilizar o GitHub de forma correta.

Dentro do repositório crie uma pasta chamada atividades. Dentro desta pasta você colocará os arquivos de cada atividade. Por exemplo, os arquivos da Atividade 02 devem estar na pasta atividades/atividade02.

Formato da Entrega:

Valor: 2,0 pontos na 2ª Nota.

Data da Entrega Limite: 24/02/2021

Coloque a resolução das questões na past atividades/atividade13/ no seu repositório.

Questão 01 - 0,5 Pontos

Você deve fazer dois programas, um em C/C++ outro em Python, chamados inverter.c (ou inverter.cpp) e inverter.py. Cada programa deve ler uma cadeia de caracteres do teclado e imprimi-la ao inverso. Por exemplo, se o usuário informar "casa", o programa deve retornar "asac". No caso da versão em C/C++, há um requisito extra: a cadeia de caracteres invertida deve ser armazenada na mesma variável.

Questão 02 - 0,5 Pontos

Você deve fazer dois programas, um em C/C++ outro em Java, chamados enumeracoes.c (ou enumeracoes.cpp) e enumeracoes.java. Em cada programa, crie três enumerações:

Em seguida, cada programa deve ler um valor inteiro do teclado e exibir o dia da semana correspondente, o mês correspondente e o item da lista de compra correspondente. Caso o o valor esteja fora da faixa de alguma das enumerações, deve ser exibida uma mensagem afirmando que o valor não representa nenhum item daquela enumeração, mas estando dentro da faixa das outras, a informação correspondente deve ser exibida.

Questão 03 - 0,5 Pontos

Os arquivos da questão devem ser nomeados TiposPrimitivos.c e TiposPrimitivos.java

Você deve fazer o mesmo programa em C e em Java. O programa deve receber um parâmetro em linha de comando representando um número. Em seguida, o programa deve exibir na tela o maior múltiplo do número informado que pode ser armazenado em uma variável do tipo int (não considere os modificadores long, short e unsigned).

Não é permitido procurar no Google o tamanho máximo armazenado pelo tipo int e ir decrementando deste valor até achar um múltiplo. Você deve desenvolver um algoritmo para descobrir esse valor, independente de arquitetura e implementação dos compiladores e máquinas virtuais.

Dica: o que acontece se você incrementar uma variável inteira indefinidamente? Quando chegar no valor limite do tipo, qual valor a variável assume?

Exemplo de execução dos programas (no Linux):

$ gcc -o TiposPrimitivos.out TiposPrimitivos.c
$ ./TiposPrimitivos.out 5
Maior Múltiplo: 2147483645
$ javac TiposPrimitivos.java 
$ java TiposPrimitivos 5
Maior Múltiplo: 2147483645
                        

Questão 04 - 0,5 Pontos

Nesta questão, você deve criar dois programas, ComparaStrings.c (em C, não C++) e ComparaStrings.py.

Cada programa deve receber duas strings como parâmetro na linha de comando. Em seguida, deve imprimir o tamanho de cada string , informar se uma string contém a outra e por último imprimir a versão inversa de cada string.

Exemplo de execução dos programas (no Linux):

$ python ComparaStrings.py casa comida 
casa: 4
comida: 6
casa não contém comida
comida não contém casa
asac
adimoc
$ python ComparaStrings.py casa casagrande 
casa: 4
casagrande: 10
casa não contém casagrande
casagrande contém casa
asac
ednargasac