Baixe o app para aproveitar ainda mais
Prévia do material em texto
TT 130 – Algoritmos e Programac¸a˜o de Computadores I Prof. Cla´udio Alessandro de Carvalho Silva cacs@ft.unicamp.br Aula 02 Linguagem Estruturada Conteu´do 1 Exerc´ıcio Inicial 2 Dados e Identificadores 3 Estrutura Sequ¨encial 4 Estrutura Sequ¨encial em C 5 Introduc¸a˜o ao Ambiente de Trabalho 6 Hands On 7 Refereˆncias U¨bersicht 1 Exerc´ıcio Inicial 2 Dados e Identificadores 3 Estrutura Sequ¨encial 4 Estrutura Sequ¨encial em C 5 Introduc¸a˜o ao Ambiente de Trabalho 6 Hands On 7 Refereˆncias Exerc´ıcio Elabore um algoritmo que mova os treˆs discos de tamanhos (1, 2, 3) mostrados na figura para outra das hastes (a, b, c) obedecendo as regras: 1 Pode-se mover apenas um disco de cada vez. 2 Pode-se mover apenas o disco do topo de cada haste. 3 Na˜o se pode colocar um disco maior sobre um disco menor. U¨bersicht 1 Exerc´ıcio Inicial 2 Dados e Identificadores 3 Estrutura Sequ¨encial 4 Estrutura Sequ¨encial em C 5 Introduc¸a˜o ao Ambiente de Trabalho 6 Hands On 7 Refereˆncias Dados e Abstrac¸a˜o da Realidade Para resolver um problema com ou sem computadores e´ necessa´rio uma abstrac¸a˜o da realidade: conjunto de dados e operac¸o˜es representando a situac¸a˜o real. Conjunto de dados: depende do problema e da ferramenta. Na˜o e´ trivial em problemas relevantes e reais. .. Qualquer que seja o modelo externo, a representac¸a˜o interna do computador digital e´ bina´ria. Linguagens de programac¸a˜o: abstrac¸o˜es do computador. Situam-se entre o programador e o conjunto hardware-software que compo˜e um computador real. Baixo n´ıvel: pro´ximo da representac¸a˜o da ma´quina Alto n´ıvel: pro´ximo de modelos de reprentac¸a˜o humanos. Tipos de Dados Classificar a varia´veis de acordo com suas caracter´ısticas e´ usual na Matema´tica. E´ ainda mais importante na computac¸a˜o. cada valor, expressa˜o ou func¸a˜o deve ter um tipo. Em texto matema´tico, o tipo pode ser declarado mas muitas vezes pode ser deduzido do contexto ou da notac¸a˜o. Na maioria das limguagens e´ necessa´rio que o tipo seja sempre declarado. Tipos de Dados Primitivos Cada linguagem possui um conjunto de tipos ba´sicos pre´-definidos na linguagem. Em geral e´ poss´ıvel definir tipos de varia´veis de acordo com o problema a ser resolvido compondo os tipos ba´sicos. Os tipos de dados primitivos mais comuns sa˜o: nume´rico lo´gico literal ou caractere Nume´rico Inteiros e reais. O tamanho depende da plataforma/compilador e do subtipo selecionado na declarac¸a˜o de tipo. Exemplos: Inteiro de 2 bytes: 28 × 28 = 216 = 65536 possibilidades de inteiros diferentes. Atualmente, 4 ou 8 bytes. Real de 4 bytes: 28 × 28 × 28 = 232 possibilidades de reais diferentes. Atualmente, 4, 8 ou 16 bytes. Lo´gico Falso ou verdadeiro. 1 byte. Em C na˜o ha´ um tipo espec´ıfico. Em expresso˜es booleanas, 0 e´ falso e na˜o-zero e´ verdadeiro. Literal Caractere ou cadeia de caracteres. 1 byte por caractere. Constante Um dado e´ constante quando na˜o sofre nenhuma variac¸a˜o no decorrer do tempo, ou seja, seu valor e´ constante desde o in´ıcio ate´ o fim da execuc¸a˜o do algoritmo, assim como e´ constante para execuc¸o˜es diferentes no tempo. Varia´vel Um dado e´ classificado como varia´vel quando ha´ a possibilidade de ser alterado em algum instante no decorrer do tempo, durante a execuc¸a˜o ou para execuc¸o˜es diferentes. Identificadores: Nomes de Constantes e Varia´veis Devem comec¸ar com uma letra. Caracteres que pode ser usados: nu´meros, letras e trac¸o baixo. Na˜o sa˜o permitidos espac¸os em branco e caracteres especiais (, $, +, -, %, !). Na˜o podem ser usadas as palavras reservadas da linguagem. Exemplos Identificadores va´lidos: Alpha, X, BJ153, K7, notas, media, ABC, INPS. Caracteres inva´lidos: 5X, E(13), A:B, X-Y, AWQ*, P&AA. U¨bersicht 1 Exerc´ıcio Inicial 2 Dados e Identificadores 3 Estrutura Sequ¨encial 4 Estrutura Sequ¨encial em C 5 Introduc¸a˜o ao Ambiente de Trabalho 6 Hands On 7 Refereˆncias Estrutura Sequ¨encial em Algoritmos 1: Algoritmo 2: Declare 3: Bloco de comandos 4: Fim Declarac¸a˜o de Varia´veis em Algoritmos 1: Declare inteiro x 2: Declare literal y, z 3: Declare lo´gico teste Atribuic¸a˜o em Algoritmos 1: x← 4 2: x← x+ 2 3: y ← “aula” 4: teste← falso Comando de Entrada em Algoritmos 1: Leia x 2: Leia y Comando de Sa´ıda em Algoritmos 1: Escreva x 2: Escreva “Conteu´do de y = ”, y Exerc´ıcio Escreva um algoritmo que receba treˆs notas e seus respectivos pesos, calcule e mostre a me´dia ponderada dessas notas. Exerc´ıcio Escreva o algoritmo para as Torres de Hano´i em pseudo-co´digo. U¨bersicht 1 Exerc´ıcio Inicial 2 Dados e Identificadores 3 Estrutura Sequ¨encial 4 Estrutura Sequ¨encial em C 5 Introduc¸a˜o ao Ambiente de Trabalho 6 Hands On 7 Refereˆncias 1 #include <nome_da_biblioteca_externa.h> 2 3 int main()/* main () significa "Comece aqui"*/ 4 { /* Chaves definem blocos de comandos */ 5 6 bloco de comandos; /* Comentarios */ 7 8 return( 0 ); /* Retorne zero em execucao correta */ 9 10 } /* Chaves definem blocos de comandos */ 1 #include <stdio.h> /* Biblioteca externa */ 2 3 /* Meu primeiro programa em C */ 4 5 int main() 6 { 7 printf("Benvindo ao C!\n"); /* Comando da biblioteca */ 8 9 return( 0 ); 10 } Declarac¸a˜o de Varia´veis em C 1 int x; 2 float num; 3 char y; 4 char z[30]; 5 unsigned int teste; Atribuic¸a˜o em C 1 x = 4 ; 2 x = x + 2; 3 num = 2.5; 4 y = ’M’; 5 strcpy( z, "Joao"); /* Biblioteca string.h */ 6 teste = 0; Comando de Entrada em C 1 scanf( &x ); Comando de Sa´ıda em C 1 printf( "%d", x ); 2 printf( "\tConteu´do de y = %c\n", y ); 3 printf( "%f", num ); U¨bersicht 1 Exerc´ıcio Inicial 2 Dados e Identificadores 3 Estrutura Sequ¨encial 4 Estrutura Sequ¨encial em C 5 Introduc¸a˜o ao Ambiente de Trabalho 6 Hands On 7 Refereˆncias Ambiente de Trabalho Ba´sico Gnu/Linux Editor de texto GCC Uso do GCC Compilar: $ gcc -c programa.c Linkar: $ gcc -o programa programa.o Executar: $ ./programa U¨bersicht 1 Exerc´ıcio Inicial 2 Dados e Identificadores 3 Estrutura Sequ¨encial 4 Estrutura Sequ¨encial em C 5 Introduc¸a˜o ao Ambiente de Trabalho 6 Hands On 7 Refereˆncias Exerc´ıcios Em todos os exerc´ıcios, fac¸a o algoritmo em fluxograma ou pseudoco´digo e depois implemente em C. 1 Fac¸a o programa “Benvindo ao C” para testar o ambiente. 2 Fac¸a um programa que implemente o algoritmo que receba treˆs notas e seus respectivos pesos, calcule e mostre a me´dia ponderada dessas notas. 3 Fac¸a um programa que calcule e mostre a a´rea de um c´ırculo. 4 Fac¸a um programa que receba um nu´mero positivo maior que zero, calcule e mostre: O nu´mero digitado ao quadrado. O nu´mero digitado ao cubo. A raiz quadrada do nu´mero digitado. A raiz cu´bica do nu´mero digitado. 5 Fac¸a um programa que receba o ano de nascimento de uma pessoa e o ano atual e mostre a idade da pessoa e sua idade em 2027. 6 Fac¸a um programa que receba um nu´mero real, calcule e mostre: A parte inteira. A parte decimal. O arredondamento. U¨bersicht 1 Exerc´ıcio Inicial 2 Dados e Identificadores 3 Estrutura Sequ¨encial 4 Estrutura Sequ¨encial em C 5 Introduc¸a˜o ao Ambiente de Trabalho 6 Hands On 7 Refereˆncias Refereˆncias ASCENCIO, A. F. G., CAMPOS, E. A. V., Fundamentos da Programac¸a˜o de Computadores – Algoritmos, Pascal e C/C++, Pearson Prentice Hall, 2003. Cap. 2. DEITEL, H. M., DEITEL, P. J., Como Programar em C. Rio de Janeiro: LTC, 1999. Cap. 2. Exercício Inicial Dados e IdentificadoresEstrutura Seqüencial Estrutura Seqüencial em C Introdução ao Ambiente de Trabalho Hands On Referências
Compartilhar