Alguma vez parou para olhar, maravilhado com essa beleza e genialidade? Milhões de pessoas vivendo suas vidas, alienadas... (Agente Smith Matrix)

Documentos relacionados
Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 10. Algoritmos e Programação. Enquanto (Teste no início) Repeat (Teste no final)

Linguagem Computacional. Estruturas de Controle: Estruturas de Repetição. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Notas de Aula de Algoritmos e Programação de Computadores

VARIÁVEIS NUMÉRICAS : integer - Números inteiros entre e real - Números reais de 11 algarismos significativos.

FACCAT Sistemas de Informação. Estruturas de Dados

Professor Mauricio Lederer Algoritmos. Entrada e saída de dados

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano M. Cansian

Linguagem Computacional

Linguagem Computacional. Estruturas de Controle: Estruturas de Decisão ou de Seleção. Prof. Dr. Adriano Cansian Prof. Dr. Leandro Alves Neves

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Estrutura de decisão

Organização de programas em Pascal

MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21

Aulas Anteriores. Detalhes da linguagem de programação

Ciência da Computação

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

LISTA 14 Gabarito. 1) Preparar um algoritmo para calcular a soma de 100 termos da seguinte série:

Programação de Computadores:

Algoritmos e Programação

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

LISTA DE EXERCÍCIOS O que será escrito quando os algoritmos/trechos de algoritmos abaixo forem executados (fazer no papel)?

LISTA DE EXERCÍCIOS 15 ( Matrizes (7Cs))

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Linguagem Pascal. Prof. Antonio Almeida de Barros Junior

LISTA DE EXERCÍCIOS: 1ª Unidade

Working 03 : Conceitos Básicos II

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

Comandos de desvio de fluxo. Expressões lógicas.

Programação de Computadores III

Linguagem de Programação Pascal - Introdução

VETORES Motivação AULA 19

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA DISCUSSÃO DOS EXERCÍCIOS E EXERCÍCIOS EXTRAS

Unidade VI. Técnicas de Teste de Software Teste Estrutural. Profa. Dra. Sandra Fabbri

Elementos básicos das linguagens de programação

Estruturas de Repetição. João Medeiros FATERN

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Estrutura Condicional

Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C.

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Programação de Computadores III

Introdução à Ciência da Computação

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

Programação Básica. Estrutura de um algoritmo

Para começar... Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Comando REPITA (repeat) Comando REPITA (repeat)

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

Estruturas de Controle

Algoritmos e Programação

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Fluxograma Pseudocódigo Estruturas de decisão. Professor Leandro Augusto Frata Fernandes

Estruturas de Repetição

Working 03 : Conceitos Básicos II

Algoritmos I Aula 5 Visualg

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

I1, I2 e In são instruções simples ou estruturadas da linguagem Pascal.

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

Programação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral

Introdução a Programação na Linguagem C.

MODULARIZAÇÃO - PARTE 1

ESTRUTURAS DE REPETIÇÃO - PARTE 1

Estruturas de Controle. Estrutura de Seleção. Estrutura de Seleção

Disciplina de Algoritmos e Programação

Algoritmos e Lógica de Programação 80 horas // 4 h/semana. Para começar... Strings. Para começar... Strings. Exemplo...

Modularização. Prof. Antonio Almeida de Barros Junior

1ª LISTA DE EXERCÍCIOS

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Aula Anterior. Decomposição algorítmica (continuação)

Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos

Linguagem de Programação I. Linguagem Pascal

Comandos de desvio de fluxo. Expressões lógicas.

Universidade Estadual do Sudoeste da Bahia Departamento de Estudos Básicos e Instrumentais Disciplina: Introdução à Ciência da Computação Prof.

ESTRUTURA CONDICIONAL E SELEÇÃO

Laços de repetição for, while, do-while

5 Comando de Seleção Simples e Composta

printf( \n %d dividido por %d eh%d e o resto eh%d \n, x, y, resultado)

Instituto de Computação Programação de Computadores (TCC00326)

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Oficina de Python Prof. Me. José Carlos Perini

Lista de Exercícios 1 Algoritmos, Pseudocódigo e Fluxograma

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

<identificador>[<tamanho>]: <tipo>;

1 ESTRUTURA SEQUENCIAL

Prof. Jorge Cavalcanti

Exercícios de Fixação Introdução ao FORTRAN

LINGUAGEM C: COMANDOS DE REPETIÇÃO

ALGORITMOS AULA 2. Profª Amanda Gondim

Agenda. Programação estruturada. Sequência. Decisão: Desvio de fluxo INTRODUÇÃO. Expressões lógicas.

Introdução aos Algoritmos

3ª Lista de Exercícios de Programação I

Aula 5 - Mais C e repetição

E X E R C Í C I O S 01. Sobre o comando CASO, marque as alternativas como verdadeira (V) ou falsa (F):

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Programação Estruturada

Transcrição:

1 Introdução a Ciência da Computação Esse manual foi feito no intuito de relembrar o que vimos em sala há 3 meses atrás, antes do início da greve das universidades federais. A respeito desse assunto (greve) apenas quero deixar um trecho de um filme para reflexão: Alguma vez parou para olhar, maravilhado com essa beleza e genialidade? Milhões de pessoas vivendo suas vidas, alienadas... (Agente Smith Matrix) Agora, a respeito do assunto Algoritmo, eis um compacto tutorial de como fazer um algoritmo consideravelmente simples usando o programa PascalZim. Um compacto tutorial A estrutura básica de um algoritmo feito no PascalZim é: nome do algoritmo; variáveis; comandos. O nome do algoritmo e o nome das variáveis usadas devem ser pequenos, sem acentuação e não podem começar com um número. As variáveis com as quais trabalhamos são string, integer e real, as quais armazenam, respectivamente, valores referentes a caracteres (frases, expressões, letras), números inteiros e números reais. É necessário definir toda e qualquer variável que será usada no programa para que ele funcione. O comando writeln cria uma frase, enquanto o readln lê uma variável. Veja um exemplo de algoritmo envolvendo tudo o que foi dito acima. Confira a transcrição abaixo:

2 Program Conversa ; Var idade:integer; altura:real; resposta:string; Begin writeln( Qual é o seu nome? ); readln(resposta); writeln( Quantos anos voc^e tem? ); readln(idade); writeln( Qual é a sua altura em metros? ); readln(altura); writeln( Ah sim,resposta,. Voc^e realmente parece ter,idade, anos e,altura, m de altura. ); End. Tal programa, quando compilado, roda da seguinte forma: Essa grande quantidade de zeros a direita do ponto pode ser reduzido se, ao programarmos, colocássemos altura:0:2. Desse modo, apareceriam apenas duas casas decimais.

3 Algo importante a ser observado é que as partes em verde foram escritas pelo programador usando o comando writeln enquanto as partes em branco são dados fornecidos pelo usuário. Esses dados são armazenados nas respectivas variáveis usadas juntamente com o comando readln. Para evitar erros é necessário que tanto o programador quanto o usuário usem o bom senso. Ao responder a pergunta Quantos anos voc^e tem?, por exemplo, é de bom senso que o usuário evite responder 12.576 ou então -9. Caso um número real não inteiro seja fornecido onde o comando readln pede uma variável inteira (integer) o programa travará. E ainda que informe o número inteiro 9 e o programa rode, sabemos que não faria sentido nesse caso pois é uma idade. O mesmo ocorre caso informemos letras onde se pedem números. Há como o programador prevenir esse tipo de erro ao construir o algoritmo, mas por simplificação desta apostila não veremos como fazer isso 1. O bom senso é essencial principalmente ao programarmos. As perguntas feitas no algoritmo devem estar claras o suficiente para que não haja dúvidas no momento em que o usuário trabalhe com o programa. Deixe o algoritmo trabalhar por você Uma das maiores utilidades do algoritmo: Ele faz contas por nós (e bem mais rápido). Sabendo que o comando := significa atribuição e dados valores reais para a e b, para realizar uma conta simples de soma podemos fazer soma:=a+b; Dessa forma a variável soma vai receber o valor de a somado ao valor de b, que devem ter sido previamente lidos pelo programa. Observe o exemplo abaixo envolvendo as quatro operações básicas. 1 Caso alguém se interesse, venha conversar comigo pessoalmente, terei o maior prazer em explicar.

4 Essas operações podem ainda serem realizadas dentro da própria mensagem, isso economiza o uso de variáveis. Veja um algoritmo que roda identicamente ao anterior, mas escrito de forma simplificada. Condicional Vejamos como funciona agora o comando que analisa uma condição: if. Mas primeiro... Pense por um momento: Como é feita a sua média? Escreva à parte uma forma de generalizar uma média com quatro notas, todas com o mesmo peso. Agora, observemos um algoritmo que realiza esse cálculo: Note na linha 7 que a leitura de várias variáveis pode ser feita de uma só vez. Na linha 8, atente especialmente para os parênteses que definem qual é o numerador da expressão. Esquecer de colocar parênteses faria com que o algoritmo entendesse que apenas a quarta nota foi dividida por quatro. Okay, agora vamos tornar o resultado mais personalizado. Perguntaremos o nome do usuário e, tomando a média mínima para passar de ano como 5, informaremos se ele passou ou não de ano. Observe, principalmente, a estrutura da condicional (o if das linhas 14 à 19).

5 Eis as duas possibilidades do programa escrito acima Nesse último algoritmo, que contempla tudo o que vimos até o momento, vamos analisar como ficaria naquela linguagem informal que vimos em sala nas primeiras aulas sobre algoritmo. Programa Media ; Var usuario:string; n1,n2,n3,n4,m:real; Começar escrever( Olá, qual é o seu nome? ); ler(usuario); escrever( Diga,usuario,, quais foram suas quatro notas? ); ler(n1,n2,n3,n4); m:=(n1+n2+n3+n4)/4; se (m>=5) ent~ao começar writeln( Sua média é,m:0:2,,usuario,! Parabéns, voc^e passou. ); terminar sen~ao começar writeln( Mas poxa vida,usuario,... Espero que os,m:0:2, de média e essa reprovaç~ao n~ao te desanime. ); terminar; Terminar. Repetir O repetir também é condicional. O comando repeat... until( ) faz com que o programa repita linhas de comando até que a condição seja satisfeita. Pelo exemplo abaixo, podemos ver um programa que repetirá infinitamente a frase Wake up, Neo... até que o usuário digite ok.

6 Considerações Finais Pode usar a linguagem informal na prova? Pode, mas use a linguagem informal OU a formal, não misture as duas em um mesmo algoritmo. Quando será a prova? A segunda prova será dia 28 de setembro e a prova optativa será dia 05 de outubro. Como será a prova? A prova terá cinco questões, cada uma valendo dois pontos e meio. Será de consulta e em dupla, você pode levar o que quiser para consultar (lembrando que há apostilas na xerox da universidade e no blog 2 ). E como será a Prova Optativa? Será SEM consulta e individual, contemplando todo o conteúdo (números binários e algoritmos). Sugestão: Se quer finalizar sua média com um 10,0 de ICC, busque fazer os exercícios abaixo ainda hoje (21/set) em aula e tire as dúvidas que tiver. 2 http://fernando-cpaq.blogspot.com/

7 Lista de Questões Questão 1. O que é algoritmo? Questão 2. Monte um algoritmo que leia um número e mostre o cubo deste número. Questão 3. Construa um programa que leia os valores dos coeficientes de uma equação de segundo grau e retorne os valores de suas raízes. Questão 4. Faça um programa que leia a idade de uma pessoa e, caso seja menor de 18 anos, mostre uma mensagem dizendo que não pode usar o programa. Questão 5. Estruture um algoritmo de modo que ele calcule a área de um retângulo. Questão 6. Estruture um algoritmo de modo que ele calcule a área de um círculo. Questão 7. Monte um programa que leia o preço gasto para fabricar um saquinho de pipoca, o preço da venda de um saquinho pipoca e retorne o lucro da venda de 100 desses saquinhos. Questão 8. Escreva um algoritmo que leia o preço de uma roupa, seu desconto e retorne o valor da roupa com desconto. Questão 9. Faça um programa que calcule e mostre quantos anos alguém tem usando como dado de entrada a data de nascimento. Questão 10. Em homenagem ao dia da árvore (21 de setembro), construa um algoritmo que escreva alguma frase falando sobre árvores 21 vezes.