Buscar

Lógica de programação e Algoritmos

Prévia do material em texto

1
J701 :: Lógica de
Programação e Algoritmos
Prof. Celso A. W. Santos
J701 :: Lógica de Programação e Algoritmos
celso.santos@docente.unip.br
18/08/2020
2
Sejam bem-vinds!
Sejam muito bem-vind*s!
(... ou bem-vind*s de volta :D)
� Prof. Celso Aimbiré Weffort-Santos
� Aluno de Doutorado da Universidade Estadual de Campinas
. Teoria da Computação
. Colorações de Grafos
. Complexidade Parametrizada
� J701 - Lógica de Programação e Algoritmos (LPA)
� J07B - Introdução à Programação Estruturada (IPE)
2
Sejam bem-vinds!
Sejam muito bem-vind*s!
(... ou bem-vind*s de volta :D)
� Prof. Celso Aimbiré Weffort-Santos
� Aluno de Doutorado da Universidade Estadual de Campinas
. Teoria da Computação
. Colorações de Grafos
. Complexidade Parametrizada
� J701 - Lógica de Programação e Algoritmos (LPA)
� J07B - Introdução à Programação Estruturada (IPE)
2
Sejam bem-vinds!
Sejam muito bem-vind*s!
(... ou bem-vind*s de volta :D)
� Prof. Celso Aimbiré Weffort-Santos
� Aluno de Doutorado da Universidade Estadual de Campinas
. Teoria da Computação
. Colorações de Grafos
. Complexidade Parametrizada
� J701 - Lógica de Programação e Algoritmos (LPA)
� J07B - Introdução à Programação Estruturada (IPE)
2
Sejam bem-vinds!
Sejam muito bem-vind*s!
(... ou bem-vind*s de volta :D)
� Prof. Celso Aimbiré Weffort-Santos
� Aluno de Doutorado da Universidade Estadual de Campinas
. Teoria da Computação
. Colorações de Grafos
. Complexidade Parametrizada
� J701 - Lógica de Programação e Algoritmos (LPA)
� J07B - Introdução à Programação Estruturada (IPE)
2
Sejam bem-vinds!
Sejam muito bem-vind*s!
(... ou bem-vind*s de volta :D)
� Prof. Celso Aimbiré Weffort-Santos
� Aluno de Doutorado da Universidade Estadual de Campinas
. Teoria da Computação
. Colorações de Grafos
. Complexidade Parametrizada
� J701 - Lógica de Programação e Algoritmos (LPA)
� J07B - Introdução à Programação Estruturada (IPE)
2
Sejam bem-vinds!
Sejam muito bem-vind*s!
(... ou bem-vind*s de volta :D)
� Prof. Celso Aimbiré Weffort-Santos
� Aluno de Doutorado da Universidade Estadual de Campinas
. Teoria da Computação
. Colorações de Grafos
. Complexidade Parametrizada
� J701 - Lógica de Programação e Algoritmos (LPA)
� J07B - Introdução à Programação Estruturada (IPE)
2
Sejam bem-vinds!
Sejam muito bem-vind*s!
(... ou bem-vind*s de volta :D)
� Prof. Celso Aimbiré Weffort-Santos
� Aluno de Doutorado da Universidade Estadual de Campinas
. Teoria da Computação
. Colorações de Grafos
. Complexidade Parametrizada
� J701 - Lógica de Programação e Algoritmos (LPA)
� J07B - Introdução à Programação Estruturada (IPE)
3
Sobre nossas aulas...
� Infelizmente, estamos no meio de uma pandemia mundial.
� Portanto, nossas aulas serão todas online, via Zoom.
. Os detalhes de acesso estão disponíveis no sistema da UNIP.
� IMPORTANTÍSSIMO: Isso aqui NÃO.
� Nosso ensino é presencial, porém virtual. Tratem nossas aulas com a
mesma seriedade que tratariam se estivéssemos no mesmo prédio.
� PORTANTO:
. Se você tem uma dúvida: levante a mão e tire-a!
. Se você tem alguma contribuição para fazer à aula: levante a mão e
faça-a!
. Se você não entendeu alguma coisa que eu falei: me interrompa que
eu explico de novo!
� Aulas online são chatasdiferentes... Mas ela é tão chatadiferente
quanto vocês deixam ela ser!
https://zoom.us
3
Sobre nossas aulas...
� Infelizmente, estamos no meio de uma pandemia mundial.
� Portanto, nossas aulas serão todas online, via Zoom.
. Os detalhes de acesso estão disponíveis no sistema da UNIP.
� IMPORTANTÍSSIMO: Isso aqui NÃO.
� Nosso ensino é presencial, porém virtual. Tratem nossas aulas com a
mesma seriedade que tratariam se estivéssemos no mesmo prédio.
� PORTANTO:
. Se você tem uma dúvida: levante a mão e tire-a!
. Se você tem alguma contribuição para fazer à aula: levante a mão e
faça-a!
. Se você não entendeu alguma coisa que eu falei: me interrompa que
eu explico de novo!
� Aulas online são chatasdiferentes... Mas ela é tão chatadiferente
quanto vocês deixam ela ser!
https://zoom.us
3
Sobre nossas aulas...
� Infelizmente, estamos no meio de uma pandemia mundial.
� Portanto, nossas aulas serão todas online, via Zoom.
. Os detalhes de acesso estão disponíveis no sistema da UNIP.
� IMPORTANTÍSSIMO: Isso aqui NÃO.
� Nosso ensino é presencial, porém virtual. Tratem nossas aulas com a
mesma seriedade que tratariam se estivéssemos no mesmo prédio.
� PORTANTO:
. Se você tem uma dúvida: levante a mão e tire-a!
. Se você tem alguma contribuição para fazer à aula: levante a mão e
faça-a!
. Se você não entendeu alguma coisa que eu falei: me interrompa que
eu explico de novo!
� Aulas online são chatasdiferentes... Mas ela é tão chatadiferente
quanto vocês deixam ela ser!
https://zoom.us
3
Sobre nossas aulas...
� Infelizmente, estamos no meio de uma pandemia mundial.
� Portanto, nossas aulas serão todas online, via Zoom.
. Os detalhes de acesso estão disponíveis no sistema da UNIP.
� IMPORTANTÍSSIMO: Isso aqui NÃO. É.
� Nosso ensino é presencial, porém virtual. Tratem nossas aulas com a
mesma seriedade que tratariam se estivéssemos no mesmo prédio.
� PORTANTO:
. Se você tem uma dúvida: levante a mão e tire-a!
. Se você tem alguma contribuição para fazer à aula: levante a mão e
faça-a!
. Se você não entendeu alguma coisa que eu falei: me interrompa que
eu explico de novo!
� Aulas online são chatasdiferentes... Mas ela é tão chatadiferente
quanto vocês deixam ela ser!
https://zoom.us
3
Sobre nossas aulas...
� Infelizmente, estamos no meio de uma pandemia mundial.
� Portanto, nossas aulas serão todas online, via Zoom.
. Os detalhes de acesso estão disponíveis no sistema da UNIP.
� IMPORTANTÍSSIMO: Isso aqui NÃO. É. EAD.
� Nosso ensino é presencial, porém virtual. Tratem nossas aulas com a
mesma seriedade que tratariam se estivéssemos no mesmo prédio.
� PORTANTO:
. Se você tem uma dúvida: levante a mão e tire-a!
. Se você tem alguma contribuição para fazer à aula: levante a mão e
faça-a!
. Se você não entendeu alguma coisa que eu falei: me interrompa que
eu explico de novo!
� Aulas online são chatasdiferentes... Mas ela é tão chatadiferente
quanto vocês deixam ela ser!
https://zoom.us
3
Sobre nossas aulas...
� Infelizmente, estamos no meio de uma pandemia mundial.
� Portanto, nossas aulas serão todas online, via Zoom.
. Os detalhes de acesso estão disponíveis no sistema da UNIP.
� IMPORTANTÍSSIMO: Isso aqui NÃO. É. EAD.
� Nosso ensino é presencial, porém virtual. Tratem nossas aulas com a
mesma seriedade que tratariam se estivéssemos no mesmo prédio.
� PORTANTO:
. Se você tem uma dúvida: levante a mão e tire-a!
. Se você tem alguma contribuição para fazer à aula: levante a mão e
faça-a!
. Se você não entendeu alguma coisa que eu falei: me interrompa que
eu explico de novo!
� Aulas online são chatasdiferentes... Mas ela é tão chatadiferente
quanto vocês deixam ela ser!
https://zoom.us
3
Sobre nossas aulas...
� Infelizmente, estamos no meio de uma pandemia mundial.
� Portanto, nossas aulas serão todas online, via Zoom.
. Os detalhes de acesso estão disponíveis no sistema da UNIP.
� IMPORTANTÍSSIMO: Isso aqui NÃO. É. EAD.
� Nosso ensino é presencial, porém virtual. Tratem nossas aulas com a
mesma seriedade que tratariam se estivéssemos no mesmo prédio.
Isso é o que EU vou fazer!
� PORTANTO:
. Se você tem uma dúvida: levante a mão e tire-a!
. Se você tem alguma contribuição para fazer à aula: levante a mão e
faça-a!
. Se você não entendeu alguma coisa que eu falei: me interrompa que
eu explico de novo!
� Aulas online são chatasdiferentes... Mas ela é tão chatadiferente
quanto vocês deixam ela ser!
https://zoom.us
3
Sobre nossas aulas...
� Infelizmente, estamos no meio de uma pandemia mundial.
� Portanto, nossas aulas serão todas online, via Zoom.
. Os detalhes de acesso estão disponíveis no sistema da UNIP.
� IMPORTANTÍSSIMO: Isso aqui NÃO. É. EAD.
� Nosso ensino é presencial, porém virtual. Tratem nossas aulas com a
mesma seriedadeque tratariam se estivéssemos no mesmo prédio.
Isso é o que EU vou fazer!
� PORTANTO:
. Se você tem uma dúvida: levante a mão e tire-a!
. Se você tem alguma contribuição para fazer à aula: levante a mão e
faça-a!
. Se você não entendeu alguma coisa que eu falei: me interrompa que
eu explico de novo!
� Aulas online são chatasdiferentes... Mas ela é tão chatadiferente
quanto vocês deixam ela ser!
https://zoom.us
3
Sobre nossas aulas...
� Infelizmente, estamos no meio de uma pandemia mundial.
� Portanto, nossas aulas serão todas online, via Zoom.
. Os detalhes de acesso estão disponíveis no sistema da UNIP.
� IMPORTANTÍSSIMO: Isso aqui NÃO. É. EAD.
� Nosso ensino é presencial, porém virtual. Tratem nossas aulas com a
mesma seriedade que tratariam se estivéssemos no mesmo prédio.
Isso é o que EU vou fazer!
� PORTANTO:
. Se você tem uma dúvida: levante a mão e tire-a!
. Se você tem alguma contribuição para fazer à aula: levante a mão e
faça-a!
. Se você não entendeu alguma coisa que eu falei: me interrompa que
eu explico de novo!
� Aulas online são chatasdiferentes... Mas ela é tão chatadiferente
quanto vocês deixam ela ser!
https://zoom.us
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova serácom consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
4
Sobre a avaliação...
� A avaliação da disciplina de LPA será realizada por meio de listas de
exercícios e provas.
� Sobre as listas:
. A partir da próxima semana, eu disponibilizarei uma pequena lista de
exercícios para fixação. Serão dois ou três (no máximo), e serão
relacionados ao conteúdo visto em sala de aula.
. As listas serão fornecidas a cada 15 dias (duas semanas), com prazo
de entrega até o final da semana vigente.
. Entregar as listas de exercícios contará para a nota final do semestre.
. A menos que explicitado no cabeçalho da lista, a correção dos
exercícios será binária: ou acertou tudo ou errou tudo.
� Sobre a prova:
. Será realizada uma única prova ao final do semestre.
. Muito provavelmente essa prova será virtual.
. A prova será com consulta.
. Haverá possibilidade de prova substitutiva, caso alguém não possa
comparecer à prova.
5
Sobre a avaliação...
� A nota final do semestre será contabilizada da seguinte forma.
. Nota NL: pontuação obtida nas listas de exercício. [Máximo 5.0
pontos]
. Nota NP : pontuação da prova. [Máximo 5.0 pontos]
. Nota do semestre: NS = NL + NP
. Se NS ≥ 7.0, a nota do final NF = NS e o aluno está aprovado.
. Caso contrário, terá de realizar exame. Nesse caso, a nota final
NF = NS+EX2 . O aluno será aprovado se NF ≥ 5.0 nesse caso, e
reprovado caso contrário.
5
Sobre a avaliação...
� A nota final do semestre será contabilizada da seguinte forma.
. Nota NL: pontuação obtida nas listas de exercício. [Máximo 5.0
pontos]
. Nota NP : pontuação da prova. [Máximo 5.0 pontos]
. Nota do semestre: NS = NL + NP
. Se NS ≥ 7.0, a nota do final NF = NS e o aluno está aprovado.
. Caso contrário, terá de realizar exame. Nesse caso, a nota final
NF = NS+EX2 . O aluno será aprovado se NF ≥ 5.0 nesse caso, e
reprovado caso contrário.
5
Sobre a avaliação...
� A nota final do semestre será contabilizada da seguinte forma.
. Nota NL: pontuação obtida nas listas de exercício. [Máximo 5.0
pontos]
. Nota NP : pontuação da prova. [Máximo 5.0 pontos]
. Nota do semestre: NS = NL + NP
. Se NS ≥ 7.0, a nota do final NF = NS e o aluno está aprovado.
. Caso contrário, terá de realizar exame. Nesse caso, a nota final
NF = NS+EX2 . O aluno será aprovado se NF ≥ 5.0 nesse caso, e
reprovado caso contrário.
5
Sobre a avaliação...
� A nota final do semestre será contabilizada da seguinte forma.
. Nota NL: pontuação obtida nas listas de exercício. [Máximo 5.0
pontos]
. Nota NP : pontuação da prova. [Máximo 5.0 pontos]
. Nota do semestre: NS = NL + NP
. Se NS ≥ 7.0, a nota do final NF = NS e o aluno está aprovado.
. Caso contrário, terá de realizar exame. Nesse caso, a nota final
NF = NS+EX2 . O aluno será aprovado se NF ≥ 5.0 nesse caso, e
reprovado caso contrário.
5
Sobre a avaliação...
� A nota final do semestre será contabilizada da seguinte forma.
. Nota NL: pontuação obtida nas listas de exercício. [Máximo 5.0
pontos]
. Nota NP : pontuação da prova. [Máximo 5.0 pontos]
. Nota do semestre: NS = NL + NP
. Se NS ≥ 7.0, a nota do final NF = NS e o aluno está aprovado.
. Caso contrário, terá de realizar exame. Nesse caso, a nota final
NF = NS+EX2 . O aluno será aprovado se NF ≥ 5.0 nesse caso, e
reprovado caso contrário.
5
Sobre a avaliação...
� A nota final do semestre será contabilizada da seguinte forma.
. Nota NL: pontuação obtida nas listas de exercício. [Máximo 5.0
pontos]
. Nota NP : pontuação da prova. [Máximo 5.0 pontos]
. Nota do semestre: NS = NL + NP
. Se NS ≥ 7.0, a nota do final NF = NS e o aluno está aprovado.
. Caso contrário, terá de realizar exame. Nesse caso, a nota final
NF = NS+EX2 . O aluno será aprovado se NF ≥ 5.0 nesse caso, e
reprovado caso contrário.
6
Algumas informações a mais...
� Dois últimos comentários:
. Haverá um período (oficial) de revisão de notas no final do semestre,
após a realização dos exames. Vocês poderão visualizar e contestar
qualquer nota obtida durante o semestre.
– Eu prefiro fazer isso durante o semestre. Se você tiver alguma dúvida
sobre a correção e/ou sobre sua nota, me mande um e-mail.
. Haverá uma planilha de notas disponibilizada no meu site, que será
atualizada periodicamente.
– Qualquer discrepância e/ou dúvida sobre as notas publicadas na
planilha devem ser tiradas o mais rápido possível.
6
Algumas informações a mais...
� Dois últimos comentários:
. Haverá um período (oficial) de revisão de notas no final do semestre,
após a realização dos exames. Vocês poderão visualizar e contestar
qualquer nota obtida durante o semestre.
– Eu prefiro fazer isso durante o semestre. Se você tiver alguma dúvida
sobre a correção e/ou sobre sua nota, me mande um e-mail.
. Haverá uma planilha de notas disponibilizada no meu site, que será
atualizada periodicamente.
– Qualquer discrepância e/ou dúvida sobre as notas publicadas na
planilha devem ser tiradas o mais rápido possível.
6
Algumas informações a mais...
� Dois últimos comentários:
. Haverá um período (oficial) de revisão de notas no final do semestre,
após a realização dos exames. Vocês poderão visualizar e contestar
qualquer nota obtida durante o semestre.
– Eu prefiro fazer isso durante o semestre. Se você tiver alguma dúvida
sobre a correção e/ou sobre sua nota, me mande um e-mail.
. Haverá uma planilha de notas disponibilizada no meu site, que será
atualizada periodicamente.
– Qualquer discrepância e/ou dúvida sobre as notas publicadas na
planilha devem ser tiradas o mais rápido possível.
6
Algumas informações a mais...
� Dois últimos comentários:
. Haverá um período (oficial) de revisão de notas no final do semestre,
após a realização dos exames. Vocês poderão visualizar e contestar
qualquer nota obtida durante o semestre.
– Eu prefiro fazer isso durante o semestre. Se você tiver alguma dúvida
sobre a correção e/ou sobre sua nota, me mande um e-mail.
. Haverá uma planilha de notas disponibilizada no meu site, que será
atualizada periodicamente.
– Qualquer discrepância e/ou dúvida sobre as notas publicadas na
planilha devem ser tiradas o mais rápido possível.
6
Algumas informações a mais...
� Dois últimos comentários:
. Haverá um período (oficial) de revisão de notas no final do semestre,após a realização dos exames. Vocês poderão visualizar e contestar
qualquer nota obtida durante o semestre.
– Eu prefiro fazer isso durante o semestre. Se você tiver alguma dúvida
sobre a correção e/ou sobre sua nota, me mande um e-mail.
. Haverá uma planilha de notas disponibilizada no meu site, que será
atualizada periodicamente.
– Qualquer discrepância e/ou dúvida sobre as notas publicadas na
planilha devem ser tiradas o mais rápido possível.
7
Sobre a disciplina...
� J701 :: Lógica de Programação e Algoritmos
. Independente de linguagem de programação...
. Independente de capacidade computacional...
� Objetivo Geral: “Desenvolver o raciocínio lógico aplicado a solução
de problemas em nível computacional.”
� Qual será a linguagem de programação utilizada?
� Esta disciplina será FORTEMENTE atrelada à disciplina de IPE.
. Aqui veremos a teoria; em IPE, colocaremos ela em prática.
7
Sobre a disciplina...
� J701 :: Lógica de Programação e Algoritmos
. Independente de linguagem de programação...
. Independente de capacidade computacional...
� Objetivo Geral: “Desenvolver o raciocínio lógico aplicado a solução
de problemas em nível computacional.”
� Qual será a linguagem de programação utilizada?
� Esta disciplina será FORTEMENTE atrelada à disciplina de IPE.
. Aqui veremos a teoria; em IPE, colocaremos ela em prática.
7
Sobre a disciplina...
� J701 :: Lógica de Programação e Algoritmos
. Independente de linguagem de programação...
. Independente de capacidade computacional...
� Objetivo Geral: “Desenvolver o raciocínio lógico aplicado a solução
de problemas em nível computacional.”
� Qual será a linguagem de programação utilizada?
� Esta disciplina será FORTEMENTE atrelada à disciplina de IPE.
. Aqui veremos a teoria; em IPE, colocaremos ela em prática.
7
Sobre a disciplina...
� J701 :: Lógica de Programação e Algoritmos
. Independente de linguagem de programação...
. Independente de capacidade computacional...
� Objetivo Geral: “Desenvolver o raciocínio lógico aplicado a solução
de problemas em nível computacional.”
� Qual será a linguagem de programação utilizada?
� Esta disciplina será FORTEMENTE atrelada à disciplina de IPE.
. Aqui veremos a teoria; em IPE, colocaremos ela em prática.
7
Sobre a disciplina...
� J701 :: Lógica de Programação e Algoritmos
. Independente de linguagem de programação...
. Independente de capacidade computacional...
� Objetivo Geral: “Desenvolver o raciocínio lógico aplicado a solução
de problemas em nível computacional.”
� Qual será a linguagem de programação utilizada?
� Esta disciplina será FORTEMENTE atrelada à disciplina de IPE.
. Aqui veremos a teoria; em IPE, colocaremos ela em prática.
7
Sobre a disciplina...
� J701 :: Lógica de Programação e Algoritmos
. Independente de linguagem de programação...
. Independente de capacidade computacional...
� Objetivo Geral: “Desenvolver o raciocínio lógico aplicado a solução
de problemas em nível computacional.”
� Qual será a linguagem de programação utilizada? NENHUMA! ...
mas isso não quer dizer que não vamos “programar”!
� Esta disciplina será FORTEMENTE atrelada à disciplina de IPE.
. Aqui veremos a teoria; em IPE, colocaremos ela em prática.
7
Sobre a disciplina...
� J701 :: Lógica de Programação e Algoritmos
. Independente de linguagem de programação...
. Independente de capacidade computacional...
� Objetivo Geral: “Desenvolver o raciocínio lógico aplicado a solução
de problemas em nível computacional.”
� Qual será a linguagem de programação utilizada? NENHUMA! ...
mas isso não quer dizer que não vamos “programar”!
� Esta disciplina será FORTEMENTE atrelada à disciplina de IPE.
. Aqui veremos a teoria; em IPE, colocaremos ela em prática.
7
Sobre a disciplina...
� J701 :: Lógica de Programação e Algoritmos
. Independente de linguagem de programação...
. Independente de capacidade computacional...
� Objetivo Geral: “Desenvolver o raciocínio lógico aplicado a solução
de problemas em nível computacional.”
� Qual será a linguagem de programação utilizada? NENHUMA! ...
mas isso não quer dizer que não vamos “programar”!
� Esta disciplina será FORTEMENTE atrelada à disciplina de IPE.
. Aqui veremos a teoria; em IPE, colocaremos ela em prática.
7
Sobre a disciplina...
� J701 :: Lógica de Programação e Algoritmos
. Independente de linguagem de programação...
. Independente de capacidade computacional...
� Objetivo Geral: “Desenvolver o raciocínio lógico aplicado a solução
de problemas em nível computacional.”
� Qual será a linguagem de programação utilizada? NENHUMA! ...
mas isso não quer dizer que não vamos “programar”!
� Esta disciplina será FORTEMENTE atrelada à disciplina de IPE.
. Aqui veremos a teoria; em IPE, colocaremos ela em prática.
8
1. Conceitos Básicos
9
Antes de mais nada...
1 Quem aqui sabe programar?
2 Quem aqui sabe o que um computador consegue fazer?
9
Antes de mais nada...
1 Quem aqui sabe programar?
2 Quem aqui sabe o que um computador consegue fazer?
10
Conceitos Básicos
Pra quê serve um programa de
computador?
10
Conceitos Básicos
� Programas de computador servem para resolver problemas.
Definição: Um problema computacional é um questionamento
geral, ou uma pergunta, acompanhado de alguns parâmetros,
chamados de entrada, para o qual se deseja obter uma resposta
específica, chamada de saída.
� Problemas (computacionais) são resolvidos por meio de algoritmos.
10
Conceitos Básicos
� Programas de computador servem para resolver problemas.
Definição: Um problema computacional é um questionamento
geral, ou uma pergunta, acompanhado de alguns parâmetros,
chamados de entrada, para o qual se deseja obter uma resposta
específica, chamada de saída.
� Problemas (computacionais) são resolvidos por meio de algoritmos.
10
Conceitos Básicos
� Programas de computador servem para resolver problemas.
Definição: Um problema computacional é um questionamento
geral, ou uma pergunta, acompanhado de alguns parâmetros,
chamados de entrada, para o qual se deseja obter uma resposta
específica, chamada de saída.
� Problemas (computacionais) são resolvidos por meio de algoritmos.
11
Conceitos Básicos
Definição: Um algoritmo é um conjunto finito de regras que for-
nece uma sequência de operações para resolver um problema
computacional específico.
� Todo algoritmo possui cinco características principais.
1 O algoritmo sempre termina.
2 Cada passo do algoritmo é rigorosamente definido.
– Não permite ambiguidades ou dúvidas.
3 O algoritmo tem uma entrada.
4 Um algoritmo gera uma saída.
5 Todas as operações em um algoritmo devem ser suficientemente
elementares (ou básicas) que qualquer pessoa consegue executá-las.
11
Conceitos Básicos
Definição: Um algoritmo é um conjunto finito de regras que for-
nece uma sequência de operações para resolver um problema
computacional específico.
� Todo algoritmo possui cinco características principais.
1 O algoritmo sempre termina.
2 Cada passo do algoritmo é rigorosamente definido.
– Não permite ambiguidades ou dúvidas.
3 O algoritmo tem uma entrada.
4 Um algoritmo gera uma saída.
5 Todas as operações em um algoritmo devem ser suficientemente
elementares (ou básicas) que qualquer pessoa consegue executá-las.
11
Conceitos Básicos
Definição: Um algoritmo é um conjunto finito de regras que for-
nece uma sequência de operações para resolver um problema
computacional específico.
� Todo algoritmo possui cinco características principais.
1 O algoritmo sempre termina.
2 Cada passo do algoritmo é rigorosamente definido.
– Não permite ambiguidades ou dúvidas.
3 O algoritmo tem uma entrada.
4 Um algoritmo gera uma saída.
5 Todas as operações em um algoritmo devem ser suficientemente
elementares (ou básicas) que qualquer pessoa consegue executá-las.
11
Conceitos Básicos
Definição: Um algoritmo é um conjunto finito de regras que for-
nece uma sequência de operações para resolver um problema
computacional específico.
� Todo algoritmo possui cinco características principais.1 O algoritmo sempre termina.
2 Cada passo do algoritmo é rigorosamente definido.
– Não permite ambiguidades ou dúvidas.
3 O algoritmo tem uma entrada.
4 Um algoritmo gera uma saída.
5 Todas as operações em um algoritmo devem ser suficientemente
elementares (ou básicas) que qualquer pessoa consegue executá-las.
11
Conceitos Básicos
Definição: Um algoritmo é um conjunto finito de regras que for-
nece uma sequência de operações para resolver um problema
computacional específico.
� Todo algoritmo possui cinco características principais.
1 O algoritmo sempre termina.
2 Cada passo do algoritmo é rigorosamente definido.
– Não permite ambiguidades ou dúvidas.
3 O algoritmo tem uma entrada.
4 Um algoritmo gera uma saída.
5 Todas as operações em um algoritmo devem ser suficientemente
elementares (ou básicas) que qualquer pessoa consegue executá-las.
11
Conceitos Básicos
Definição: Um algoritmo é um conjunto finito de regras que for-
nece uma sequência de operações para resolver um problema
computacional específico.
� Todo algoritmo possui cinco características principais.
1 O algoritmo sempre termina.
2 Cada passo do algoritmo é rigorosamente definido.
– Não permite ambiguidades ou dúvidas.
3 O algoritmo tem uma entrada.
4 Um algoritmo gera uma saída.
5 Todas as operações em um algoritmo devem ser suficientemente
elementares (ou básicas) que qualquer pessoa consegue executá-las.
11
Conceitos Básicos
Definição: Um algoritmo é um conjunto finito de regras que for-
nece uma sequência de operações para resolver um problema
computacional específico.
� Todo algoritmo possui cinco características principais.
1 O algoritmo sempre termina.
2 Cada passo do algoritmo é rigorosamente definido.
– Não permite ambiguidades ou dúvidas.
3 O algoritmo tem uma entrada.
4 Um algoritmo gera uma saída.
5 Todas as operações em um algoritmo devem ser suficientemente
elementares (ou básicas) que qualquer pessoa consegue executá-las.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo
� Os ingredientes
� O bolo
� A receita
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo
� Os ingredientes
� O bolo
� A receita
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo
� Os ingredientes
� O bolo
� A receita
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes
� O bolo
� A receita
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes
� O bolo
� A receita
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes =⇒ a entrada.
� O bolo
� A receita
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes =⇒ a entrada.
� O bolo
� A receita
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes =⇒ a entrada.
� O bolo =⇒ a saída.
� A receita
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes =⇒ a entrada.
� O bolo =⇒ a saída.
� A receita
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes =⇒ a entrada.
� O bolo =⇒ a saída.
� A receita =⇒ o algoritmo
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes =⇒ a entrada.
� O bolo =⇒ a saída.
� A receita =⇒ o algoritmo =⇒ Software
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes =⇒ a entrada.
� O bolo =⇒ a saída.
� A receita =⇒ o algoritmo =⇒ Software
� Os utensílios e o fogão
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes =⇒ a entrada.
� O bolo =⇒ a saída.
� A receita =⇒ o algoritmo =⇒ Software
� Os utensílios e o fogão =⇒ Hardware
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
12
Exemplo (clássico)!
O exemplo mais clássico de toda a história da computação: você está
numa cozinha e você quer fazer um bolo.
Cozinhar é o processo que produz um bolo, a partir dos ingredientes,
realizado pelo cozinheiro, auxiliado pelo fogão e, mais importantemente,
de acordo com a receita.
� Estou com fome e quero um bolo =⇒ o problema.
� Os ingredientes =⇒ a entrada.
� O bolo =⇒ a saída.
� A receita =⇒ o algoritmo =⇒ Software
� Os utensílios e o fogão =⇒ Hardware
Um cozinheiro, por mais habilidoso que ele seja, não pode fazer um
bolo. Mas ele pode bater a mistura, medir, servir, acender o fogão,
medir tempo, etc.
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Em um liquidificador adicione os ovos, o
chocolate em pó, a manteiga, a farinha de trigo,
o açúcar e o leite, depois bata por 5 minutos.
2 Adicione o fermento e misture com uma
espátula delicadamente.
3 Em uma forma untada, despeje a massa e asse
em forno médio (180 oC) preaquecido por cerca
de 40 minutos.
4 Em uma panela, aqueça a manteiga e misture o
chocolate em pó até que esteja homogêneo.
5 Acrescente o creme de leite e misture bem até
obter uma consistência cremosa.
6 Desligue o fogo e acrescente o açúcar.
Ingredientes (Massa)
4x ovos.
4 colheres (sopa) de chocolate em pó
2 colheres (sopa) de manteiga
3 xícaras (chá) de farinha de trigo
2 xícaras (chá) de açúcar
2 colheres (sopa) de fermento
1 xícara (chá) de leite
Ingredientes (Calda)
2 colheres (sopa) de manteiga
7 colheres (sopa) de chocolate em pó
2 latas de creme de leite com soro
3 colheres (sopa) de açúcar
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Em um liquidificador adicione os ovos, o
chocolate em pó, a manteiga, a farinha de trigo,
o açúcar e o leite, depois bata por 5 minutos.
2 Adicione o fermento e misture com uma
espátula delicadamente.
3 Em uma forma untada, despeje a massa e asse
em forno médio (180 oC) preaquecido por cerca
de 40 minutos.
4 Em uma panela, aqueça a manteiga e misture o
chocolate em pó até que esteja homogêneo.
5 Acrescente o creme de leite e misture bem até
obter uma consistência cremosa.
6 Desligue o fogo e acrescente o açúcar.
� Uma das instruções é: “Em uma
forma untada, despeje a massa (...)”
� Por que a receita não diz: “Pegue um
pouco de manteiga e espalhe na
forma (...)”?
� Porque o Hardware “sabe” o que é
uma forma untada.
� Mas então, será que o Hardware
não sabe, por exemplo, preparar uma
calda de chocolate?
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Em um liquidificador adicione os ovos, o
chocolate em pó, a manteiga, a farinha de trigo,
o açúcar e o leite, depois bata por 5 minutos.
2 Adicione o fermento e misture com uma
espátula delicadamente.
3 Em uma forma untada, despeje a massa e asse
em forno médio (180 oC) preaquecido por cerca
de 40 minutos.
4 Em uma panela, aqueça a manteiga e misture o
chocolate em pó até que esteja homogêneo.
5 Acrescente o creme de leite e misture bem até
obter uma consistência cremosa.
6 Desligue o fogo e acrescente o açúcar.
� Uma das instruções é: “Em uma
forma untada, despeje a massa (...)”
� Por que a receita não diz: “Pegue um
pouco de manteiga e espalhe na
forma (...)”?
� Porque o Hardware “sabe” o que é
uma forma untada.
� Mas então, será que o Hardware
não sabe, por exemplo, preparar uma
calda de chocolate?
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Em um liquidificador adicione os ovos, o
chocolate em pó, a manteiga, a farinha de trigo,
o açúcar e o leite, depois bata por 5 minutos.
2 Adicione o fermento e misture com uma
espátula delicadamente.
3 Em uma forma untada, despeje a massa e asse
em forno médio (180 oC) preaquecido por cerca
de 40 minutos.
4 Em uma panela, aqueça a manteiga e misture o
chocolate em pó até que esteja homogêneo.
5 Acrescente o creme de leite e misture bem até
obter uma consistência cremosa.
6 Desligue o fogo e acrescente o açúcar.
� Uma das instruções é: “Em uma
forma untada, despeje a massa (...)”
� Por que a receita não diz: Pegue 243
gramas de manteiga, coloque-a em
um papel toalha e, em movimentos
circulares concêntricos, espalhe pela
forma, com uma angulação de 14o
(...)?
� Porque o Hardware “sabe” o que é
uma forma untada.
� Mas então, será que o Hardware
não sabe, por exemplo, preparar uma
calda de chocolate?
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Em um liquidificador adicione os ovos, o
chocolate em pó, a manteiga, a farinha de trigo,
o açúcar e o leite, depois bata por 5 minutos.
2 Adicione o fermento e misture com uma
espátula delicadamente.
3 Em uma forma untada, despeje a massa e asse
em forno médio (180 oC) preaquecido por cerca
de 40 minutos.
4 Em uma panela, aqueça a manteiga e misture o
chocolate em pó até que esteja homogêneo.
5 Acrescente o creme de leite e misture bem até
obter uma consistência cremosa.
6 Desligue o fogo e acrescente o açúcar.
� Uma das instruções é: “Em uma
forma untada, despeje a massa (...)”
� Por que a receita não diz: Pegue 243
gramas de manteiga, coloque-a em
um papel toalha e, em movimentos
circulares concêntricos,espalhe pela
forma, com uma angulação de 14o
(...)?
� Porque o Hardware “sabe” o que é
uma forma untada.
� Mas então, será que o Hardware
não sabe, por exemplo, preparar uma
calda de chocolate?
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Em um liquidificador adicione os ovos, o
chocolate em pó, a manteiga, a farinha de trigo,
o açúcar e o leite, depois bata por 5 minutos.
2 Adicione o fermento e misture com uma
espátula delicadamente.
3 Em uma forma untada, despeje a massa e asse
em forno médio (180 oC) preaquecido por cerca
de 40 minutos.
4 Em uma panela, aqueça a manteiga e misture o
chocolate em pó até que esteja homogêneo.
5 Acrescente o creme de leite e misture bem até
obter uma consistência cremosa.
6 Desligue o fogo e acrescente o açúcar.
� Uma das instruções é: “Em uma
forma untada, despeje a massa (...)”
� Por que a receita não diz: Pegue 243
gramas de manteiga, coloque-a em
um papel toalha e, em movimentos
circulares concêntricos, espalhe pela
forma, com uma angulação de 14o
(...)?
� Porque o Hardware “sabe” o que é
uma forma untada.
� Mas então, será que o Hardware
não sabe, por exemplo, preparar uma
calda de chocolate?
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Em um liquidificador adicione os ovos, o
chocolate em pó, a manteiga, a farinha de trigo,
o açúcar e o leite, depois bata por 5 minutos.
2 Adicione o fermento e misture com uma
espátula delicadamente.
3 Em uma forma untada, despeje a massa e asse
em forno médio (180 oC) preaquecido por cerca
de 40 minutos.
4 Prepare calda de chocolate.
� Uma das instruções é: “Em uma
forma untada, despeje a massa (...)”
� Por que a receita não diz: Pegue 243
gramas de manteiga, coloque-a em
um papel toalha e, em movimentos
circulares concêntricos, espalhe pela
forma, com uma angulação de 14o
(...)?
� Porque o Hardware “sabe” o que é
uma forma untada.
� Mas então, será que o Hardware
não sabe, por exemplo, preparar uma
calda de chocolate?
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Em um liquidificador adicione os ovos, o
chocolate em pó, a manteiga, a farinha de trigo,
o açúcar e o leite, depois bata por 5 minutos.
2 Adicione o fermento e misture com uma
espátula delicadamente.
3 Em uma forma untada, despeje a massa e asse
em forno médio (180 oC) preaquecido por cerca
de 40 minutos.
4 Prepare calda de chocolate.
� Uma das instruções é: “Em uma
forma untada, despeje a massa (...)”
� Por que a receita não diz: Pegue 243
gramas de manteiga, coloque-a em
um papel toalha e, em movimentos
circulares concêntricos, espalhe pela
forma, com uma angulação de 14o
(...)?
� Porque o Hardware “sabe” o que é
uma forma untada.
� Mas então, será que o Hardware
não sabe, por exemplo, preparar o
bolo inteiro?
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Preparar bolo inteiro.
� Uma das instruções é: “Em uma
forma untada, despeje a massa (...)”
� Por que a receita não diz: Pegue 243
gramas de manteiga, coloque-a em
um papel toalha e, em movimentos
circulares concêntricos, espalhe pela
forma, com uma angulação de 14o
(...)?
� Porque o Hardware “sabe” o que é
uma forma untada.
� Mas então, será que o Hardware
não sabe, por exemplo, preparar o
bolo inteiro?
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
13
Um passo a mais no nosso exemplo
Vamos nos aprofundar mais nesse exemplo...
Bolo de Chocolate∗
1 Preparar bolo inteiro.
� Uma das instruções é: “Em uma
forma untada, despeje a massa (...)”
� Por que a receita não diz: Pegue 243
gramas de manteiga, coloque-a em
um papel toalha e, em movimentos
circulares concêntricos, espalhe pela
forma, com uma angulação de 14o
(...)?
� Porque o Hardware “sabe” o que é
uma forma untada.
� Mas então, será que o Hardware
não sabe, por exemplo, preparar o
bolo inteiro?
O nível das instruções deve sempre ser suficientemente simples que
qualquer pessoa com o mínimo de conhecimento sobre o assunto possa
realizar as tarefas.
∗Retirado de Tudo Gostoso
https://www.tudogostoso.com.br/receita/62547-a-melhor-receita-de-bolo-de-chocolate.html
14
Um segundo exemplo!
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui uma nota final NF .
A regra é simples!
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
� Qual é a entrada desse problema?
� Qual é a saída esperada?
� Como resolvemos esse problema?
� Tem como “visualizar” esse passo-a-passo para obter a resposta?
14
Um segundo exemplo!
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui uma nota final NF .
A regra é simples!
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
� Qual é a entrada desse problema?
� Qual é a saída esperada?
� Como resolvemos esse problema?
� Tem como “visualizar” esse passo-a-passo para obter a resposta?
14
Um segundo exemplo!
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui uma nota final NF .
A regra é simples!
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
� Qual é a entrada desse problema?
� Qual é a saída esperada?
� Como resolvemos esse problema?
� Tem como “visualizar” esse passo-a-passo para obter a resposta?
14
Um segundo exemplo!
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui uma nota final NF .
A regra é simples!
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
� Qual é a entrada desse problema?
� Qual é a saída esperada?
� Como resolvemos esse problema?
� Tem como “visualizar” esse passo-a-passo para obter a resposta?
14
Um segundo exemplo!
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui uma nota final NF .
A regra é simples!
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
� Qual é a entrada desse problema?
� Qual é a saída esperada?
� Como resolvemos esse problema?
� Tem como “visualizar” esse passo-a-passo para obter a resposta?
14
Um segundo exemplo!
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui uma nota final NF .
A regra é simples!
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
� Qual é a entrada desse problema?
� Qual é a saída esperada?
� Como resolvemos esse problema?
� Tem como “visualizar” esse passo-a-passo para obter a resposta?
14
Um segundo exemplo!
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui uma nota final NF .
A regra é simples!
Se NF ≥ 5.0, o alunoé aprovado; caso contrário, o aluno é reprovado.
� Qual é a entrada desse problema?
� Qual é a saída esperada?
� Como resolvemos esse problema?
� Tem como “visualizar” esse passo-a-passo para obter a resposta?
15
Representação da sequência lógica: Fluxograma
Definição: Um fluxograma é uma representação gráfica de um
algoritmo, onde formas geométricas diferentes implicam ações
(instruções, operações, comandos, etc.) distintas.
� O objetivo principal de utilizar um fluxograma é facilitar o
entendimento do “fluxo” de ações a ser executado.
� Ele deve ser claro, simples e de fácil leitura.
� Alguns dos símbolos que utilizaremos†:
Início/Fim Processo Decisão Entrada Saída
� Iremos ver cada símbolo com calma durante o semestre. Mas por
enquanto, vamos ver um exemplo:
†De acordo com GOMES et al., Fundamentos da Programação de Computadores – Algoritmos, Pascal e C/C++. Prentice Hall, 2007.
15
Representação da sequência lógica: Fluxograma
Definição: Um fluxograma é uma representação gráfica de um
algoritmo, onde formas geométricas diferentes implicam ações
(instruções, operações, comandos, etc.) distintas.
� O objetivo principal de utilizar um fluxograma é facilitar o
entendimento do “fluxo” de ações a ser executado.
� Ele deve ser claro, simples e de fácil leitura.
� Alguns dos símbolos que utilizaremos†:
Início/Fim Processo Decisão Entrada Saída
� Iremos ver cada símbolo com calma durante o semestre. Mas por
enquanto, vamos ver um exemplo:
†De acordo com GOMES et al., Fundamentos da Programação de Computadores – Algoritmos, Pascal e C/C++. Prentice Hall, 2007.
15
Representação da sequência lógica: Fluxograma
Definição: Um fluxograma é uma representação gráfica de um
algoritmo, onde formas geométricas diferentes implicam ações
(instruções, operações, comandos, etc.) distintas.
� O objetivo principal de utilizar um fluxograma é facilitar o
entendimento do “fluxo” de ações a ser executado.
� Ele deve ser claro, simples e de fácil leitura.
� Alguns dos símbolos que utilizaremos†:
Início/Fim Processo Decisão Entrada Saída
� Iremos ver cada símbolo com calma durante o semestre. Mas por
enquanto, vamos ver um exemplo:
†De acordo com GOMES et al., Fundamentos da Programação de Computadores – Algoritmos, Pascal e C/C++. Prentice Hall, 2007.
15
Representação da sequência lógica: Fluxograma
Definição: Um fluxograma é uma representação gráfica de um
algoritmo, onde formas geométricas diferentes implicam ações
(instruções, operações, comandos, etc.) distintas.
� O objetivo principal de utilizar um fluxograma é facilitar o
entendimento do “fluxo” de ações a ser executado.
� Ele deve ser claro, simples e de fácil leitura.
� Alguns dos símbolos que utilizaremos†:
Início/Fim Processo Decisão Entrada Saída
� Iremos ver cada símbolo com calma durante o semestre. Mas por
enquanto, vamos ver um exemplo:
†De acordo com GOMES et al., Fundamentos da Programação de Computadores – Algoritmos, Pascal e C/C++. Prentice Hall, 2007.
15
Representação da sequência lógica: Fluxograma
Definição: Um fluxograma é uma representação gráfica de um
algoritmo, onde formas geométricas diferentes implicam ações
(instruções, operações, comandos, etc.) distintas.
� O objetivo principal de utilizar um fluxograma é facilitar o
entendimento do “fluxo” de ações a ser executado.
� Ele deve ser claro, simples e de fácil leitura.
� Alguns dos símbolos que utilizaremos†:
Início/Fim Processo Decisão Entrada Saída
� Iremos ver cada símbolo com calma durante o semestre. Mas por
enquanto, vamos ver um exemplo:
†De acordo com GOMES et al., Fundamentos da Programação de Computadores – Algoritmos, Pascal e C/C++. Prentice Hall, 2007.
16
Fluxograma para o problema da média
Início
16
Fluxograma para o problema da média
Início
NF
16
Fluxograma para o problema da média
Início
NF
Entrada do
usuário
16
Fluxograma para o problema da média
Início
NF
NF ≥ 5.0?
16
Fluxograma para o problema da média
Início
NF
NF ≥ 5.0?
Tomada de decisão
16
Fluxograma para o problema da média
Início
NF
NF ≥ 5.0?
“Aprovado :)”
sim
16
Fluxograma para o problema da média
Início
NF
NF ≥ 5.0?
“Aprovado :)”
sim
“Reprovado :(”
não
16
Fluxograma para o problema da média
Início
NF
NF ≥ 5.0?
“Aprovado :)”
sim
“Reprovado :(”
não
Ações de
saída/impressão
16
Fluxograma para o problema da média
Início
NF
NF ≥ 5.0?
“Aprovado :)”
sim
“Reprovado :(”
não
Fim
17
Mas não é bem assim...
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui uma nota final NF .
A regra é simples.
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
17
Mas não é bem assim...
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra é simples.
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
17
Mas não é bem assim...
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso
4 e a nota final NF é a média ponderada entre NP1 e NP2.
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
17
Mas não é bem assim...
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota final NF é a média ponderada entre NP1 e NP2.
NF = 3×NP1 + 4×NP27
Se NF ≥ 5.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
17
Mas não é bem assim...
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota final NF é a média ponderada entre NP1 e NP2.
NF = 3×NP1 + 4×NP27
Se NF ≥ 7.0, o aluno é aprovado; caso contrário, o aluno é reprovado.
17
Mas não é bem assim...
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota final NF é a média ponderada entre NP1 e NP2.
NF = 3×NP1 + 4×NP27
Se NF ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame.
18
Fluxograma atualizado
Início
NF
NF ≥ 5.0?
“Aprovado :)”
sim
“Reprovado :(”
não
Fim
18
Fluxograma atualizado
Início
NP1, NP2
NF ≥ 5.0?
“Aprovado :)”
sim
“Reprovado :(”
não
Fim
18
Fluxograma atualizado
Início NP1, NP2
NF ≥ 5.0?
“Aprovado :)”
sim
“Reprovado :(”
não
Fim
18
Fluxograma atualizado
Início NP1, NP2
NF = 3×NP 1+4×NP 27
NF ≥ 5.0?
“Aprovado :)”
sim
“Reprovado :(”
não
Fim
18
Fluxograma atualizado
Início NP1, NP2
NF = 3×NP 1+4×NP 27
NF ≥ 7.0?
“Aprovado :)”
sim
“Reprovado :(”
não
Fim
18
Fluxograma atualizado
Início NP1, NP2
NF = 3×NP 1+4×NP 27
NF ≥ 7.0?
“Aprovado :)”
sim
“Exame :s”
não
Fim
19
E o Exame?
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota final NF é a média ponderada entre NP1 e NP2.
NF = 3×NP1 + 4×NP27
Se NF ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF do aluno é a média aritmética entre a nota
do semestre NS e a nota do Exame EX. Se NF ≥ 5.0, o aluno é
aprovado; caso contrário, ele está reprovado‡.
‡De vez, agora!
19
E o Exame?
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota final NF é a média ponderada entre NP1 e NP2.
NF = 3×NP1 + 4×NP27
Se NF ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF do aluno é a média aritmética entre a nota
do semestre NS e a nota do Exame EX. Se NF ≥ 5.0, o aluno é
aprovado;caso contrário, ele está reprovado‡.
‡De vez, agora!
19
E o Exame?
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota do semestre NS é a média ponderada entre NP1 e NP2.
NF = 3×NP1 + 4×NP27
Se NF ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF do aluno é a média aritmética entre a nota
do semestre NS e a nota do Exame EX. Se NF ≥ 5.0, o aluno é
aprovado; caso contrário, ele está reprovado‡.
‡De vez, agora!
19
E o Exame?
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota do semestre NS é a média ponderada entre NP1 e NP2.
NS = 3×NP1 + 4×NP27
Se NS ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF do aluno é a média aritmética entre a nota
do semestre NS e a nota do Exame EX. Se NF ≥ 5.0, o aluno é
aprovado; caso contrário, ele está reprovado‡.
‡De vez, agora!
19
E o Exame?
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota do semestre NS é a média ponderada entre NP1 e NP2.
NS = 3×NP1 + 4×NP27
Se NS ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF do aluno é a média aritmética entre a nota
do semestre NS e a nota do Exame EX. Se NF ≥ 5.0, o aluno é
aprovado; caso contrário, ele está reprovado‡.
‡De vez, agora!
20
Fluxograma v3.0
Início NP1, NP2
NS = 3×NP 1+4×NP 27
NS ≥ 7.0?
“Aprovado :)”
sim
Fim
“Exame :s”
não
20
Fluxograma v3.0
Início NP1, NP2
NS = 3×NP 1+4×NP 27
NS ≥ 7.0?
“Aprovado :)”
sim
Fim
não
20
Fluxograma v3.0
Início NP1, NP2
NS = 3×NP 1+4×NP 27
NS ≥ 7.0?
“Aprovado :)”
sim
Fim
EX
não
20
Fluxograma v3.0
Início NP1, NP2
NS = 3×NP 1+4×NP 27
NS ≥ 7.0?
“Aprovado :)”
sim
Fim
EX
não
NF = NS+EX2
20
Fluxograma v3.0
Início NP1, NP2
NS = 3×NP 1+4×NP 27
NS ≥ 7.0?
“Aprovado :)”
sim
Fim
EX
não
NF = NS+EX2
NF ≥ 5.0?
20
Fluxograma v3.0
Início NP1, NP2
NS = 3×NP 1+4×NP 27
NS ≥ 7.0?
“Aprovado :)”
sim
Fim
EX
não
NF = NS+EX2
NF ≥ 5.0?sim
20
Fluxograma v3.0
Início NP1, NP2
NS = 3×NP 1+4×NP 27
NS ≥ 7.0?
“Aprovado :)”
sim
Fim
EX
não
NF = NS+EX2
NF ≥ 5.0?sim
“Reprovado D:”
não
21
THE FINAL PROBLEM...
Problema: Preciso calcular a média final de um aluno de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota do semestre NS é a média ponderada entre NP1 e NP2.
NS = 3×NP1 + 4×NP27
Se NS ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF do aluno é a média aritmética entre a sua
nota do semestre NS e a nota do seu Exame EX. Se NF ≥ 5.0, o
aluno é aprovado; caso contrário, ele está reprovado.
21
THE FINAL PROBLEM...
Problema: Preciso calcular a média final de 100+ alunos de LPA.
Esse aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota do semestre NS é a média ponderada entre NP1 e NP2.
NS = 3×NP1 + 4×NP27
Se NS ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF do aluno é a média aritmética entre a sua
nota do semestre NS e a nota do seu Exame EX. Se NF ≥ 5.0, o
aluno é aprovado; caso contrário, ele está reprovado.
21
THE FINAL PROBLEM...
Problema: Preciso calcular a média final de 100+ alunos de LPA.
Cada aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota do semestre NS é a média ponderada entre NP1 e NP2.
NS = 3×NP1 + 4×NP27
Se NS ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF do aluno é a média aritmética entre a sua
nota do semestre NS e a nota do seu Exame EX. Se NF ≥ 5.0, o
aluno é aprovado; caso contrário, ele está reprovado.
21
THE FINAL PROBLEM...
Problema: Preciso calcular a média final de 100+ alunos de LPA.
Cada aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota do semestre NS é a média ponderada entre NP1 e NP2.
NS = 3×NP1 + 4×NP27
Se NS ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF de cada aluno é a média aritmética entre a
sua nota do semestre NS e a nota do seu Exame EX. Se NF ≥ 5.0, o
aluno é aprovado; caso contrário, ele está reprovado.
21
THE FINAL PROBLEM...
Problema: Preciso calcular a média final de 100+ alunos de LPA.
Cada aluno possui duas notas: NP1 e NP2.
A regra não é mais tão simples. A NP1 tem peso 3, a NP2 tem peso 4 e
a nota do semestre NS é a média ponderada entre NP1 e NP2.
NS = 3×NP1 + 4×NP27
Se NS ≥ 7.0, o aluno é aprovado; caso contrário, o aluno vai pra
exame. Então, ele terá uma terceira nota EX.
Agora sim: a nota final NF de cada aluno é a média aritmética entre a
sua nota do semestre NS e a nota do seu Exame EX. Se NF ≥ 5.0, o
aluno é aprovado; caso contrário, ele está reprovado.
22
Um exemplo mais “matemático”...
3 8 4
× 5 6
1 5 3 6
1 9 2 0
2 0 7 3 6
� Qual é a entrada?
� Qual é a saída esperada?
� Qual é o algoritmo que resolve o problema?
22
Um exemplo mais “matemático”...
3 8 4
× 5 6
1 5 3 6
1 9 2 0
2 0 7 3 6
� Qual é a entrada?
� Qual é a saída esperada?
� Qual é o algoritmo que resolve o problema?
22
Um exemplo mais “matemático”...
3 8 4
× 5 6
1 5 3 6
1 9 2 0
2 0 7 3 6
� Qual é a entrada?
� Qual é a saída esperada?
� Qual é o algoritmo que resolve o problema?
22
Um exemplo mais “matemático”...
3 8 4
× 5 6
1 5 3 6
1 9 2 0
2 0 7 3 6
� Qual é a entrada?
� Qual é a saída esperada?
� Qual é o algoritmo que resolve o problema?
22
Um exemplo mais “matemático”...
3 8 4
× 5 6
1 5 3 6
1 9 2 0
2 0 7 3 6
� Qual é a entrada?
� Qual é a saída esperada?
� Qual é o algoritmo que resolve o problema?
23
Algoritmo para Multiplicação
Entrada: Dois números A e B
Saída: O valor A×B
para cada dígito i de B, começando com o mais à direita faça
comece uma nova linha de resultados
para cada dígito j de A, começando com o mais à direita faça
multiplique i por j e guarde a informação na cabeça
se existe dígito carregado então
some o valor carregado à informação guardada na sua cabeça
e guarde o novo valor
pegue o valor unitário do resultado que você guardou e anote-o
na nova linha, na mesma coluna de j
se j não for último dígito de A então
pegue o valor decimal do resultado que você guardou e
anote-o em cima do próximo dígito de A
senão
pegue o valor decimal do resultado que você guardou e
anote-o na frente da nova linha
fim
fim
24
Pseudocódigo
Definição: Um pseudocódigo é uma descrição de um algoritmo
em português§, utilizando algumas palavras-chave e quaisquer
expressões que melhor detalhem as instruções a serem executadas.
� “Por que usar pseudocódigo e não uma linguagem de programação
de verdade?”
1 Não estamos aprendendo C/C++, ou Python, ou Java, ou qualquer
outra linguagem de programação. Estamos aprendendo a programar!
2 Não precisamos nos preocupar com detalhes de Engenharia de
Software!
– Tratamento de erros, tipos de dados, modularidade, etc...
3 Se você aprende a programar, e não somente uma linguagem de
programação, você automaticamente sabe programar em TODAS as
linguagens!
– Primeiro você descreve o algoritmo; em seguida, você transcreve ele
para sua linguagem de escolha. Basta saber/procurar as palavras
reservadas de cada linguagem.
§Ou inglês, francês, dependede onde você está.
24
Pseudocódigo
Definição: Um pseudocódigo é uma descrição de um algoritmo
em português§, utilizando algumas palavras-chave e quaisquer
expressões que melhor detalhem as instruções a serem executadas.
� “Por que usar pseudocódigo e não uma linguagem de programação
de verdade?”
1 Não estamos aprendendo C/C++, ou Python, ou Java, ou qualquer
outra linguagem de programação. Estamos aprendendo a programar!
2 Não precisamos nos preocupar com detalhes de Engenharia de
Software!
– Tratamento de erros, tipos de dados, modularidade, etc...
3 Se você aprende a programar, e não somente uma linguagem de
programação, você automaticamente sabe programar em TODAS as
linguagens!
– Primeiro você descreve o algoritmo; em seguida, você transcreve ele
para sua linguagem de escolha. Basta saber/procurar as palavras
reservadas de cada linguagem.
§Ou inglês, francês, depende de onde você está.
24
Pseudocódigo
Definição: Um pseudocódigo é uma descrição de um algoritmo
em português§, utilizando algumas palavras-chave e quaisquer
expressões que melhor detalhem as instruções a serem executadas.
� “Por que usar pseudocódigo e não uma linguagem de programação
de verdade?”
1 Não estamos aprendendo C/C++, ou Python, ou Java, ou qualquer
outra linguagem de programação. Estamos aprendendo a programar!
2 Não precisamos nos preocupar com detalhes de Engenharia de
Software!
– Tratamento de erros, tipos de dados, modularidade, etc...
3 Se você aprende a programar, e não somente uma linguagem de
programação, você automaticamente sabe programar em TODAS as
linguagens!
– Primeiro você descreve o algoritmo; em seguida, você transcreve ele
para sua linguagem de escolha. Basta saber/procurar as palavras
reservadas de cada linguagem.
§Ou inglês, francês, depende de onde você está.
24
Pseudocódigo
Definição: Um pseudocódigo é uma descrição de um algoritmo
em português§, utilizando algumas palavras-chave e quaisquer
expressões que melhor detalhem as instruções a serem executadas.
� “Por que usar pseudocódigo e não uma linguagem de programação
de verdade?”
1 Não estamos aprendendo C/C++, ou Python, ou Java, ou qualquer
outra linguagem de programação. Estamos aprendendo a programar!
2 Não precisamos nos preocupar com detalhes de Engenharia de
Software!
– Tratamento de erros, tipos de dados, modularidade, etc...
3 Se você aprende a programar, e não somente uma linguagem de
programação, você automaticamente sabe programar em TODAS as
linguagens!
– Primeiro você descreve o algoritmo; em seguida, você transcreve ele
para sua linguagem de escolha. Basta saber/procurar as palavras
reservadas de cada linguagem.
§Ou inglês, francês, depende de onde você está.
24
Pseudocódigo
Definição: Um pseudocódigo é uma descrição de um algoritmo
em português§, utilizando algumas palavras-chave e quaisquer
expressões que melhor detalhem as instruções a serem executadas.
� “Por que usar pseudocódigo e não uma linguagem de programação
de verdade?”
1 Não estamos aprendendo C/C++, ou Python, ou Java, ou qualquer
outra linguagem de programação. Estamos aprendendo a programar!
2 Não precisamos nos preocupar com detalhes de Engenharia de
Software!
– Tratamento de erros, tipos de dados, modularidade, etc...
3 Se você aprende a programar, e não somente uma linguagem de
programação, você automaticamente sabe programar em TODAS as
linguagens!
– Primeiro você descreve o algoritmo; em seguida, você transcreve ele
para sua linguagem de escolha. Basta saber/procurar as palavras
reservadas de cada linguagem.
§Ou inglês, francês, depende de onde você está.
25
Algoritmo para Multiplicação
Entrada: Dois números A e B
Saída: O valor A×B
para cada dígito i de B, começando com o mais à direita faça
comece uma nova linha de resultados
para cada dígito j de A, começando com o mais à direita faça
multiplique i por j e guarde a informação na cabeça
se existe dígito carregado então
some o valor carregado à informação guardada na sua cabeça
e guarde o novo valor
pegue o valor unitário do resultado que você guardou e anote-o
na nova linha, na mesma coluna de j
se j não for último dígito de A então
pegue o valor decimal do resultado que você guardou e
anote-o em cima do próximo dígito de A
senão
pegue o valor decimal do resultado que você guardou e
anote-o na frente da nova linha
fim
fim
25
Algoritmo para Multiplicação
Entrada: Dois números A e B
Saída: O valor A×B
para cada dígito i de B, começando com o mais à direita faça
comece uma nova linha de resultados
para cada dígito j de A, começando com o mais à direita faça
multiplique i por j e guarde a informação na cabeça
se existe dígito carregado então
some o valor carregado à informação guardada na sua cabeça
e guarde o novo valor
pegue o valor unitário do resultado que você guardou e anote-o
na nova linha, na mesma coluna de j
se j não for último dígito de A então
pegue o valor decimal do resultado que você guardou e
anote-o em cima do próximo dígito de A
senão
pegue o valor decimal do resultado que você guardou e
anote-o na frente da nova linha
fim
fim
Memória: Variáveis!
Acesso e armazenamento
25
Algoritmo para Multiplicação
Entrada: Dois números A e B
Saída: O valor A×B
para cada dígito i de B, começando com o mais à direita faça
comece uma nova linha de resultados
para cada dígito j de A, começando com o mais à direita faça
multiplique i por j e guarde a informação na cabeça
se existe dígito carregado então
some o valor carregado à informação guardada na sua cabeça
e guarde o novo valor
pegue o valor unitário do resultado que você guardou e anote-o
na nova linha, na mesma coluna de j
se j não for último dígito de A então
pegue o valor decimal do resultado que você guardou e
anote-o em cima do próximo dígito de A
senão
pegue o valor decimal do resultado que você guardou e
anote-o na frente da nova linha
fim
fim
Estrutura Sequencial!
25
Algoritmo para Multiplicação
Entrada: Dois números A e B
Saída: O valor A×B
para cada dígito i de B, começando com o mais à direita faça
comece uma nova linha de resultados
para cada dígito j de A, começando com o mais à direita faça
multiplique i por j e guarde a informação na cabeça
se existe dígito carregado então
some o valor carregado à informação guardada na sua cabeça
e guarde o novo valor
pegue o valor unitário do resultado que você guardou e anote-o
na nova linha, na mesma coluna de j
se j não for último dígito de A então
pegue o valor decimal do resultado que você guardou e
anote-o em cima do próximo dígito de A
senão
pegue o valor decimal do resultado que você guardou e
anote-o na frente da nova linha
fim
fim
Estruturas Condicionais!
Álgebra Booleana
25
Algoritmo para Multiplicação
Entrada: Dois números A e B
Saída: O valor A×B
para cada dígito i de B, começando com o mais à direita faça
comece uma nova linha de resultados
para cada dígito j de A, começando com o mais à direita faça
multiplique i por j e guarde a informação na cabeça
se existe dígito carregado então
some o valor carregado à informação guardada na sua cabeça
e guarde o novo valor
pegue o valor unitário do resultado que você guardou e anote-o
na nova linha, na mesma coluna de j
se j não for último dígito de A então
pegue o valor decimal do resultado que você guardou e
anote-o em cima do próximo dígito de A
senão
pegue o valor decimal do resultado que você guardou e
anote-o na frente da nova linha
fim
fim
Repetição/Laços!
25
Algoritmo para Multiplicação
Entrada: Dois números A e B
Saída: O valor A×B
para cada dígito i de B, começando com o mais à direita faça
comece uma nova linha de resultados
para cada dígito j de A, começando com o mais à direita faça
multiplique i por j e guarde a informação na cabeça
se existe dígito carregado então
some o valor carregado à informação guardada na sua cabeça
e guarde o novo valor
pegue o valor unitário do resultado que você guardou e anote-o
na nova linha, na mesma coluna de j
se j não for último dígito de A então
pegue o valor decimal do resultado que você

Continue navegando