• Matéria: Informática
  • Autor: desiderio1010
  • Perguntado 3 anos atrás

Considere o algoritmo a seguir:

01 - struct livro{
02 - char *titulo;
03 - char *autor;
04 - int ano;
05 - int paginas;
06 - char *categoria;
07 - }
08 -
09 - struct livro mais_antigo(struct livro a, struct livro b){
10 - if(a.ano < b.ano){
11 - return a;
12 - } else {
13 - return b;
14 - }
15 - }
16 -
17 - int mesma_categoria(struct livro a, struct livro b){
18 - if(a.categoria == b.categoria)
19 - return 1;
20 - else
21 - return 0;
22 - }
23 -
24 - struct livro mais_paginas(struct livro a, struct livro b){
25 - if (a.paginas > b.paginas)
26 - return a;
27 - else
28 - return b;
29 - }

A respeito do código apresentado podemos afirmar que:

Alternativas
Alternativa 1:
No código apresentado temos 3 funções: mais_antigo, mesma_categoria e mais_paginas.

Alternativa 2:
Na linha 25 a lógica da função mais_paginas está incorreta e ao ser executado retornará erro.

Alternativa 3:
Struct são estruturas que armazenam o endereço de outra variável, ao contrário de outras variáveis que possuem valores de um determinado tipo.

Alternativa 4:
Temos uma struct livro para armazenar os dados: títulos, autor, páginas e categoria. Porém a declaração foi feita de forma incorreta já que os campos devem ser do mesmo tipo.

Alternativa 5:
Struct e funções trabalham sempre juntas já que ambas compartilham o mesmo conjunto de instruções toda vez que quiser executar a tarefa. No código acima temos um exemplo dessa operação.

Respostas

respondido por: jeansenaj
11

Resposta:

4

Explicação:


gustavosilvao: Na linha 17 o código está declarando "int" para "mesma_categoria", sendo que na struct livro, a variável "categoria" foi declarada como ponteiro de char. Acredito que resposta seja a alternativa 5 mesmo.
ceverto11: O "int" da linha 17 é para indicar o dado de retorno da função não os dados de entrada....
respondido por: mendesdasilveirasama
10

Resposta:

Alternativa 1:

No código apresentado temos 3 funções: mais_antigo, mesma_categoria e mais_paginas.

Explicação:

2) Na linha 25 a lógica da função mais_paginas está incorreta e ao ser executado retornará erro.

A lógica dá funcão está certa if (a.paginas > b.paginas)

3) Struct são estruturas que armazenam o endereço de outra variável, ao contrário de outras variáveis que possuem valores de um determinado tipo.

Essa é a definição de PONTEIRO, Structs são registros

4)Temos uma struct livro para armazenar os dados: títulos, autor, páginas e categoria. Porém a declaração foi feita de forma incorreta já que os campos devem ser do mesmo tipo.

Aqui faltou o dados de ANO também. Além disso, a stuct não precisa armazenar somente campos do mesmo tipo, ela existe justamente como um agrupamento heterogêneo de dados.

5) Struct e funções trabalham sempre juntas já que ambas compartilham o mesmo conjunto de instruções toda vez que quiser executar a tarefa. No código acima temos um exemplo dessa operação.

Não é obrigatório trabalhar struct com funções SEMPRE. Por isso considerei essa incorreta


gustavosilvao: Na linha 17 o código está declarando "int" para "mesma_categoria", sendo que na struct livro, a variável "categoria" foi declarada como ponteiro de char. Acredito que resposta seja a alternativa 5 mesmo.
btotta: A função na linha 17 é declara como "int" pq ela retorna inteiro, nesse caso, 0 ou 1. Acredito que a I seja a resposta correta, uma vez que Structs podem ser utilizados ou terem valores atribuídos diretamente, nesse caso, ex "a.ano = 2020" .. esse comendo pode ser executando de dentro da função main() e vai atribuir o ano do livro A como 2020..
jeansandes: galera if e else é uma função
Perguntas similares