bcc 201 - introdu˘c~ao a programa˘c~ao conceitos b asicos ......5/53 conceitos b asicosiv i existe...

51
1/53 BCC 201 - Introdu¸ ao ` a Programa¸ ao Conceitos B´ asicos de Programa¸c˜ ao Guillermo C´ amara-Ch´ avez UFOP

Upload: others

Post on 25-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

1/53

BCC 201 - Introducao a Programacao

Conceitos Basicos de Programacao

Guillermo Camara-ChavezUFOP

Page 2: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

2/53

Conceitos basicos I

I Variavel

Page 3: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

3/53

Conceitos basicos II

I Posicao de memoria, identificada atraves de um nome, eusada para guardar um valor

Page 4: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

4/53

Conceitos basicos III

I Programador acessa variaveis atraves de algoritmos visandoatingir resultados propostos

Page 5: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

5/53

Conceitos basicos IV

I Existe a partir da declaracao e seu escopo pode ser uma rotinaou todo o programa (locais × globais)

global (todos acessam) local(so pertence a ele)

Page 6: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

6/53

Conceitos basicos V

I IdentificadorI Nome de variaveis, funcoes, rotulos e varios outros objetos

definidos pelo usuario

I ConstantesI Identificadores que nao podem ter seus valores alterados

durante a execucao do programa

Page 7: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

7/53

Conceitos basicos VI

I Estruturas de dadosI Tratam da forma de se ter acesso a conjuntos de dados

agrupados segundo o algoritmo adotado para a solucao de umproblema (organizacao dos dados)

Encontrar um elemento dentro do conjunto

Page 8: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

8/53

Conceitos basicos VII

I Objetivo do seu estudo:

I Teorico (identificar e desenvolver modelos, determinando queclasses de problemas podem ser resolvidos com o uso deles)

Page 9: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

9/53

Conceitos basicos VIII

Como controlar a ordem de impressao de documentos?

Page 10: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

10/53

Conceitos basicos IX

Page 11: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

11/53

Conceitos basicos X

Page 12: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

12/53

Conceitos basicos XI

Parenteses balanceados dentro de uma equacao

Page 13: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

13/53

Conceitos basicos XII

Page 14: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

14/53

Conceitos basicos XIII

Page 15: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

15/53

Conceitos basicos XIV

Torres de Hanoi

Page 16: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

16/53

Conceitos basicos XV

I Pratico (criar representacoes concretas dos objetos edesenvolver rotinas capazes de atuar sobre estasrepresentacoes)

Page 17: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

17/53

Conceitos basicos XVI

I Tipos de dadosI Primitivos (inteiro, real, char, . . . )I Estruturados (vetores, registros, . . . )

Page 18: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

18/53

Conceitos basicos XVII

I Alocacao estatica × Alocacao dinamicaI Alocacao estatica

I Reserva de espaco de memoria antes da execucaoI Variaveis locais e globais armazenadas de forma FIXAI Necessidade de previsao de tamanho do espaco (ex. vetor)

I Alocacao dinamica

I Reserva de espaco de memoria em tempo de execucaoI Necessidade de funcoes para alocacaoI Uso de ponteiro para a area reservada e crescimento dinamico

Page 19: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

19/53

Conceitos basicos XVIII

I AlgoritmoI Um algoritmo e uma sequencia de instrucoes bem definidas

para a solucao de um problema em um tempo finitoI Um algoritmo nao e a solucao de um problema, e o caminho

para a solucao

Page 20: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

20/53

Conceitos basicos XIX

I Todo algoritmo deve satisfazer:

I Entrada: zero ou mais valores de entradaI Saıda: pelo menos um valor deve ser produzidoI Claridade: todo instrucao deve ser clara e nao ambıguaI Termino: o algoritmo deve terminar depois de um numero

finito de passosI Efetividade: toda instrucao deve ser factıvel

Page 21: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

21/53

Conceitos basicos XX

I Programacao: ato de escrever um algoritmo em algumalinguagem de programacao.

I Programas sao formulacoes concretas de algoritmosabstratos, baseados em representacoes e estruturasespecıficas de dados

Page 22: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

22/53

Conceitos basicos XXI

I Abstracao: esta associada a remocao dos detalhes de algoou alguma coisa, com o intuito de concentrar foco em suascaracterısticas mais importantes.

I Os dados ou problemas a serem processados pelo computadorrepresentam uma abstracao de parte da realidade.

I A abstracao sugere a distincao que deve ser feita entre o queo programa faz e como ele e implementado.

Page 23: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

23/53

Conceitos basicos XXII

Concreto: todos os detalhes darealidade

Abstrato: so caracterısticasimportantes

Page 24: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

24/53

Conceitos basicos XXIII

Quanto mais abstrato mais geral.A figura ao lado poderia represen-tar qualquer aviao.

Quanto mais concreto, mais es-pecıficoO aviao ao lado e tao especıfico,com tantos detalhes, que so re-presenta ele mesmo

Page 25: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

25/53

Linguagens de programacao I

Page 26: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

26/53

Linguagens de programacao II

I Caracterısticas:

Page 27: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

27/53

Linguagens de programacao III

I Etapas do desenvolvimento de um programa:I Analise

I Estudar o enunciado do problema;I Definir os dados de entrada, o processamento e os dados de

saıda.

I Algoritmo

I Descrever o problema com suas solucoes.

I Codificacao

I Transformar o algoritmo numa linguagem de programacaoescolhida.

Page 28: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

28/53

Processo de programacao I

I Inicia com a edicao de um programa-fonte e termina com ageracao de um programa-executavel.

I Passos:I O programa-fonte e criado em um editor de textos.I O compilador analisa o codigo-fonte e o converte para um

codigo-objeto (versao em linguagem de maquina doprograma-fonte).

I Se o programa contiver chamadas a funcoes das bibliotecas(funcao cosseno, por exemplo) o ligador (linker) junta oprograma-objeto com a(s) respectiva(s) biblioteca(s) e geraum codigo-executavel.

Page 29: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

29/53

Processo de programacao II

Page 30: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

30/53

Processo de programacao III

I Principais termos:I Codigo-fonte: contem os comando da linguagem de

programacaoI Codigo-objeto: criado pela conversao do codigo-fonte em

linguagem de maquina. E gerado pelo compilador.I Ligador ou “linkeador”: junta o codigo-objeto com as

bibliotecas necessarias para gerar o programa-executavel.

Page 31: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

31/53

Processo de programacao IV

I Programa executavel: codigo que pode ser executado pelosistema operacional.

I Tempo de compilacao: durante o processo de conversaoentre codigo-fonte e codigo-objeto.

I Tempo de execucao: apos a ativacao do programaexecutavel.

Page 32: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

32/53

Ambiente de Programacao C/C++ I

I O codigo-fonte e editado e armazenado em um arquivo comextensoes: c, cpp

I No codigo-fonte, todo comando C++ termina com “;”

I Em seguida, o programador executa o comando para compilaro codigo-fonte (arquivo com extensao obj ou o)

Page 33: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

33/53

Ambiente de Programacao C/C++ II

I Em um sistemas C/C++, o pre-processador e executadoautomaticamente antes do compilador

I Obedece comandos especiais chamados de diretivas dopre-processador

I Indicam que manipulacoes devem ser realizadas no programaantes da compilacao (inclusao de outros arquivos nocodigo-fonte)

I Todas as diretivas comecam com #I Diretivas do pre-processador nao sao comandos C/C++, assim

elas nao terminam com “;”

Page 34: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

34/53

Ambiente de Programacao C/C++ III

I Diretivas mais utilizadas em CI #include <stdio.h>, funcoes de entrada/saıdaI #include <math.h>, funcoes matematicas

I Diretivas mais utilizadas em C++I #include <iostream>, funcoes de entrada/saıdaI #include <cmath>, funcoes matematicas

Page 35: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

35/53

Ambiente de Programacao C/C++ IV

I A proxima fase e chamada de edicao de ligacoes (link-edition)I Programas C/C++ tipicamente contem chamadas a funcoes

definidas em outros locais, tais como as bibliotecas padroes oubibliotecas de um projeto particular

I O codigo-objeto produzido contem “buracos” devido a essaschamadas

I O linker liga o codigo-objeto com o codigo dessas chamadaspara produzir o codigo-executavel.

Page 36: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

36/53

Exemplo: Programa em C e C++ I

#i n c l u d e <s t d i o . h>i n t main ( ){

p r i n t f ("Bem vindo a linguagem C! \n" ) ;r e t u r n 0 ;

}

#i n c l u d e <i o s t r e a m>u s i n g namespace s t d ;i n t main ( ){

cout<<"Bem vindo a linguagem C++! \n" ;r e t u r n 0 ;

}

Page 37: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

37/53

Exemplo: Programa em C e C++ II

Page 38: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

38/53

Exemplo: Programa em C e C++ I

I NumericoI Inteiro (3, 7, -6, 7829)I Real (23.8, 3.789, -78.297, 2.7e10)

I Cadeia de caracteres ou string (“abc”, “ana paula”,“3+4=7”)

I Logico ou booleano (verdadeiro/falso; true/false)

I Ponteiro

Page 39: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

39/53

Exemplo: Programa em C e C++ II

I Exercicios: indique o tipo de cada uma das seguintesconstantes

I 10I 10.0I -10I “10”I 6.02e2I “fim da questao”I true

Page 40: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

40/53

Operacoes primitivas I

I Adicao e subtracao sao representadas de forma usualmatematica

I MultiplicacaoI Para evitar a possıvel confusao com a letra x, a multiplicacao

e indicada por um asterisco

I Divisao 82 e representado como 8/2

I Exponenciacao 24 e representado por 2^4

Page 41: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

41/53

Operacoes primitivas II

I ExemplosI Adicao: 2 + 3 + 4I Subtracao: 10− 4− 1I Multiplicacao: 2 ∗ 3 ∗ 4I Divisao: 10,0/4

Page 42: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

42/53

Operacoes primitivas III

I Exponenciacao: 3^2

I Em C/C++ nao existe esse operadorI Ele pode ser substituıdo pela funcao embutida pow(x,y)

I C: #include<math.h>I C++: #include<cmath>I 3^2 e equivalente a pow(3,2)

Page 43: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

43/53

Operacoes primitivas IV

I O resultado de uma operacao com os dois operandos inteirose inteiro

I O resultado de uma operacao com um operando real e o outrointeiro e real

I Qual e o resultado da expressao?

1

10× 10

Page 44: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

44/53

Operacoes primitivas V

Page 45: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

45/53

Operacoes primitivas VI

I Alem dos operadores aritmeticos convencionais, existemoutros operadores ou funcoes embutidas:

I Resto da divisao: em C/C++ representado por %

I Raiz quadrada:I em C/C++ representado por sqrt(express~ao)I Ex: sqrt(16) resulta em 4, sqrt(25+11) resulta em 6

Page 46: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

46/53

Expressoes relacionais I

I Sao aquelas que realizam uma comparacao entre duasexpressoes e retornam

1. Zero (0), se o resultado e falso

2. Um (1), ou qualquer outro numero diferente de zero, se oresultado e verdadeiro

Page 47: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

47/53

Expressoes relacionais II

I Para nao esquecer os valores de uma expressao relacional, use:

S1M

NA0

Page 48: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

48/53

Expressoes relacionais III

I <expressao> == <expressao>: retorna verdadeiro quandoas expressao forem iguaisEx: a == b

I <expressao> != <expressao>: retorna verdadeiro quandoas expressao forem diferentesEx: a! = b

Page 49: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

49/53

Expressoes relacionais IV

I <expressao> > <expressao>: retorna verdadeiro quando aexpressao da esquerda tiver valor maior que a expressao dadireitaEx: a > b

I <expressao> < <expressao>: retorna verdadeiro quando aexpressao da esquerda tiver valor menor que a expressao dadireitaEx: a < b

Page 50: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

50/53

Expressoes logicas I

I Sao aquelas que realizam uma operacao logica (ou, e, nao,etc, . . . ) e retorna verdadeiro ou falso

I <expressao> && <expressao>: retorna verdadeiro quandoambas expressoes sao verdadeirasEx. a == 0 && b == 0

I <expressao> || <expressao>: retorna verdadeiro quandopelo menos uma das expressoes e verdadeiraEx. a == 0 || b == 0

I ! <expressao>: retorna verdadeiro quando a expressaoe falsa e vice-versa.

Page 51: BCC 201 - Introdu˘c~ao a Programa˘c~ao Conceitos B asicos ......5/53 Conceitos b asicosIV I Existe a partir da declara˘c~ao e seu escopo pode ser uma rotina ou todo o programa (locais

51/53

FIM