lista 1 Gabarito lista 1
lista 2
lista 3
Exercícios 3, 10, 11 e 12 da lista de exercícios de módulos.
Entregar até às 23:59 do dia 25/10/2014.
Enviar arquivo zip com códigos fontes para mota.fernandomaia@gmail.com
lista 4
É impossível ensinar alguém a pensar, já que todas as pessoas já nascem com essa capacidade.
Nosso objetivo aqui é o de compreender como desenvolver e aperfeiçoar a técnica de pensamento, no que diz respeito ao raciocínio lógico e matemático. Isso é fundamental para desenvolvermos a nossa capacidade de resolver problemas e de programar computadores.
Impor disciplina ao cérebro é um processo que, muitas vezes, produz resultados a longo prazo.
Se o seu interesse é obter resultados a curto e médio prazo, é fundamental que haja uma atividade mental constante e muita persistência
Devemos estar preparados e motivados para nos dedicarmos a uma prática constante de todos os conceitos vistos em sala de aula. Portanto, leitura, pesquisa e exercícios nunca serão demais nesse processo.
Na vida, se temos um objetivo e nos planejamos para alcança-lo, a possibilidade de sucesso torna-se bem maior do que quando n˜ão existe um planejamento.
A mesma idéia pode ser aplicada à resolução de problemas e ao desenvolvimento de programas.
Nunca devemos começar a programar a partir do nada, pois quando se começa a escrever um programa sem termos pensado e refletido sobre o problema que deu origem a ele, fica difícil visualizá-lo como um todo.
O entendimento adequado do programa, a compreensão de sua solução e a criação de um “rascunho” prévio do programa (algoritmo) e da solução s˜ão necessários para a definição da abordagem mais adequada para o problema.
Além disso, esquematizar o programa ajuda a fixar exatamente o que se deseja, a economizar tempo em frente ao monitor na tentativa de escrever um programa que cumpra o desejado e a superar as dificuldades que, por ventura, venham a ser encontradas.
“Lógica é a ciência que estuda princípios e métodos de inferência, tendo o objetivo principal de determinar em que condições certas coisas se seguem (são consequência), ou não, de outras.” (Mortari, 2001)
Em lógica, pode-se distinguir três tipos de raciocínio lógico: dedução, indução e abdução. Dada uma premissa, uma conclusão, e uma regra segundo a qual a premissa implica a conclusão, eles podem ser explicados da seguinte forma (Wikipédia, 2014):
- Dedução corresponde a determinar a conclusão. Utiliza-se da regra e sua premissa para chegar a uma conclusão. Exemplo: "Quando chove, a grama fica molhada. Choveu hoje. Portanto, a grama está molhada." É comum associar os matemáticos com este tipo de raciocínio.
- Indução é determinar a regra. É aprender a regra a partir de diversos exemplos de como a conclusão segue da premissa. Exemplo: "A grama ficou molhada todas as vezes em que choveu. Então, se chover amanhã, a grama ficará molhada." É comum associar os cientistas com este estilo de raciocínio.
- Abdução significa determinar a premissa. Usa-se a conclusão e a regra para defender que a premissa poderia explicar a conclusão. Exemplo: "Quando chove, a grama fica molhada. A grama está molhada, então pode ter chovido." Associa-se este tipo de raciocínio aos diagnosticistas e detetives.
Exemplos de questões de lógica:
- Simbologias das operações lógicas de proposições
- a) Não/Negação: ~. Exemplo: ~ p, ¬ p Alexandre não é médico.
- b) E/Conjunção: ∧. Exemplo: A ∧ B (A e B) Alexandre é professor e contador.
- c) Ou/Disjunção: ∨. Exemplo: A ∨ B (A ou B) Alexandre é professor ou é médico.
- d) Disjunção exclusiva: ⊕. Exemplo: A ⊕ B (A XOR B) Alexandre é paulista ou campo-grandense.
- e) Então/Condicional: →. Exemplo: A → B (Se A então B) Se Alexandre é professor então ele possui registro no MEC.
- f) Se e somente se/ Bi Condicional: ↔. Exemplo: Arthur é meu sobrinho se e somente se é filho de um de meus irmãos.
- De 01 a 06 - Sendo p a proposição Roberto é arquiteto e q a proposição Rogério é engenheiro, traduzir para linguagem corrente as seguintes proposições:
- 01 ~q
- 02 p ∧ ~q
- 03 ~ (p∨q)
- 04 ~p → (~q)
- 05 ~ (~p → ~q)
- 06 (~p) ↔ ~q
- 01 ~q - Rogério não é engenheiro.
- 02 p ∧ ~q - Roberto é arquiteto e Rogério não é engenheiro.
- 03 ~ (p∨q) - Não é verdade que Roberto é arquiteto ou Rogério é engenheiro.
- 04 ~p → (~q) - Se Roberto não é arquiteto então Rogério não é engenheiro.
- 05 ~ (~p → ~q) - Não é verdade que, se Roberto não é arquiteto então Rogério não é engenheiro.
- 06 (~p) ↔ ~q - Roberto não é arquiteto se e somente se Rogério não for engenheiro.
- De 07 a 12 - Sendo p a proposição Albert é médico e q a proposição Alberto é mecânico, traduzir para linguagem corrente as seguintes proposições:
- 07 ~q
- 08 ~p ∧ q
- 09 ~ (~p∨q)
- 10 p → (~q)
- 11 ~ (~p → q)
- 12 (~p) ↔ q
- 07 ~q - Alberto não é mecânico.
- 08 ~p ∧ q - Albert não é médico e Alberto é mecânico.
- 09 ~ (~p∨q) - Não é verdade que Albert não é médico ou Alberto é mecânico.
- 10 p → (~q) - Se Albert é médico então Alberto não é mecânico.
- 11 ~ (~p → q) - Não é verdade que, se Albert não é médico então Alberto é mecânico.
- 12 (~p) ↔ q - Albert não é médico se e somente se Alberto é mecânico.
- Equivalência e Condições existentes na condicional
Seja a condicional: p → q
Então temos que:
- p é condição suficiente para q
- q é condição necessária para p
- p é condição necessária e suficente para q (bi condicional)
- q é condição necessária e suficiente para p (bi condicional)
- Se Pedro gosta de pimenta, então ele é falante. Portanto:
- a) Se Pedro não é falante, então ele não gosta de pimenta.
- b) Se Pedro é falante, então ele gosta de pimenta.
- c) Se Pedro é falante, então ele não gosta de pimenta.
- d) Se Pedro não gosta de pimenta, então ele não é falante.
- e) Se Pedro gosta de pimenta, então ele não é falante.
- a) Se Pedro não é falante, então ele não gosta de pimenta.
- Se Rodrigo mentiu,então ele é culpado. Logo:
- a) Se Rodrigo não é culpado, então ele não mentiu.
- b) Rodrigo é culpado.
- c) Se Rodrigo não mentiu, então ele não é culpado.
- d) Rodrigo mentiu.
- e) Se Rodrigo é culpado, então ele mentiu.
- a) Se Rodrigo não é culpado, então ele não mentiu.
- Se o pai de meu pai morreu e o irmão de meu pai está vivo, então:
- a) Minha avó ficou viúva e minha tia começou a cantar.
- b) Meu avô morreu e minha tia virou cantora.
- c) Minha avó ficou viúva e minha tia casou novamente.
- d) Minha avó ficou viúva e minha tia, não ficou.
- e) Meu tio está vivo e meu avô sofreu um acidente.
- d) Minha avó ficou viúva e minha tia, não ficou.
- Se você se esforçar, então irá vencer. Assim sendo,
- a) seu esforço é condição suficiente para vencer.
- b) seu esforço é condição necessária para vencer.
- c) se você não se esforçar, então não irá vencer.
- d) você vencerá só se se esforçar.
- e) mesmo que se esforce, você não vencerá.
- a) seu esforço é condição suficiente para vencer.
- Duas grandezas x e y são tais que: "Se x = 3, então y=7". Pode-se concluir que:
- a) se x ≠ 3, então y ≠ 7.
- b) se y = 7, então x = 3.
- c) se y ≠ 7, então x ≠ 3.
- d) se x = 5, então y = 5.
- e) se x = 7, então y = 3.
- c) se y ≠ 7, então x ≠ 3.
Referências
- SIQUEIRA, Marcelo F. Algoritmos e Estrutura de Dados. Mato Grosso do Sul: CCET/CPCX - UFMS, 2007.
- MORTARI, Cezar A. Introdução à lógica. 1. ed. São Paulo, SP: UNESP, 2001.
- Wikipédia. Raciocínio lógico. Disponível em http://pt.wikipedia.org/wiki/Racioc%C3%ADnio_l%C3%B3gico - Acessado em 08/08/2014.
1) Calcule a média aritmética das notas de 5 alunos de uma disciplina e determine o número de alunos que tiveram nota superior à média calculada.
2) Escreva um algoritmo que declare uma variável de um tipo vetor de 10 elementos inteiros, leia 10 valores para esta variável e então escreva o maior e o menor valor do vetor e suas respectivas posições no vetor.
3) Escreva um algoritmo que recebe um inteiro 0 < n ≤ 100 e um vetor de n números inteiros cuja primeira posição é 1 e inverte a ordem dos elementos do vetor sem usar outro vetor.
4) Escreva um algoritmo que recebe um inteiro 0 < n ≤ 100 e um vetor de n números inteiros embaralhados e ordene este algoritmo em tempo linear.
Exercícios de fixação Código exemplo counting sort!
1) Escreva um algoritmo que declare uma variável A de um tipo matriz de 4 por 5 elementos numéricos (4 linhas e 5 colunas), leia valores para esta variável e escreva At.
2) Escreva um algoritmo que declare uma variável de um tipo matriz de 4 por 5 elementos numéricos (4 linhas e 5 colunas), leia valores para esta variável e escreva a soma dos elementos de cada linha da matriz, bem como a soma de todos os elementos.
3) Dadas duas matrizes An×m e Bm×n. Obter a matriz matriz Cm×p onde C = AB.lembrando que:
- O produto de matrizes não é comutativo (A.B ≠ B.A)
- Sendo An×m.Bp×q, obrigatoriamente m=p
- E a matriz resultante será (AB)n×q
Exercícios de fixação