Linguagens de programação

Slides:



Advertisements
Apresentações semelhantes
Funções em C Prof. Fabiano Utiyama.
Advertisements

INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Programação em Java Prof. Maurício Braga
Um programa em C Bibliotecas Variáveis globais
Linguagem C Marco Reis.
Algoritmo e Programação
Programação II Estruturas de Dados Aula 01
Programação para Engenharia I
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Operadores Aritméticos
Introdução à Computação - Jorge Macêdo
Introdução à Programação
LINGUAGEM C.
Linguagem C Estruturas de Controle de Fluxos
LINGUAGEM ESTRUTURADA TURBO C
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Estruturas de Repetição
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Linguagem C.
Linguagem C Estruturas de Seleção.
Ponteiros.
Estruturas de Decisão Permitir testes para decidir acções alternativas: if if - else switch (?:) Operador Condicional MF.
Descreva por palavras suas o funcionamento de um algoritmo
Revisão da Linguagem C.
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
Introdução a Computação e Cálculo Numérico
Introdução a Computação e Cálculo Numérico
© 2003 Introdução à programaçãoComputadores e programação I Execução de instruções Aula nº4.
Estruturas de Repetição
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
Introdução a Programação
Seminário 1: Revisão de C
Programação de Computadores
O Portal do Estudante de Computação
Linguagem de programação
Programação em C++ Compiladores
Aula 6 - Estruturas de Controle
Algoritmo e Programação
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014
Programação e Sistemas de Informação
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Introdução à Linguagem C
Algumas notas sobre a linguagem de programação C
Algoritmos Estruturados
Programação de PIC em C Exposição das funções básicas para
Wellington Felix.  Criada por Brian Kernighan e Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix  C++ é uma extensão da.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
PCI- Estrutura Condicional Profa. Mercedes Gonzales Márquez.
Introdução à Programação
Fundamentos de linguagens de programação
CES-10 INTRODUÇÃO À COMPUTAÇÃO
ALGORITMIA. ALGORITMO Conjunto de instruções ou acções que ao serem executadas, permitirão realizar uma determinada tarefa.
DSC/CCT/UFCG Carga Horária: 60 h Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria Ulrich Schiel José Eustáquio Rangel.
Programação de Computadores - 1
DSC/CCT/UFCG Carga Horária: 60 h Profs.: José Eustáquio Rangel de Queiroz Roberto Medeiros de Faria Ulrich Schiel José Eustáquio Rangel.
Introdução a Programação
Algoritmo e Programação
Programação Computacional Aula 9: Meu primeiro programa em C
Profº Antonio Carlos Marcelino de Paula
Profa. Maria Augusta Constante Puget
Profa. Maria Augusta Constante Puget
Linguagens de Programação
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Programação estruturada unidade 2
1 Estruturas Condicionais Aula – Tópico 3 Algoritmos e Estruturas de Dados I (DCC/003)
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

Linguagens de programação Introdução ao C

Sumário Execução de programas Linguagem Erros em programação interpretadores, compiladores Linguagem Manipulação de informação Variáveis tipos de dados Operadores aritméticos, lógicos Leitura e escrita entrada e saída de dados Selecção de instruções Instrução if Instrução Switch Erros em programação

Interpretação de Programas interpretador Programa que converte as instruções da linguagem de alto nível em instruções máquina e as executa. Basic, Java, Portugol

Compilação de programas Compilador (compiler) Programa que converte as instruções da linguagem de alto nível em instruções máquina formando um programa objecto Ligador (linker) Programa que reúne todos os programas objecto e faz um programa executável C,C++, Pascal Programas Executados pelo sistema operativo

Introdução à linguagem C

Porquê C++ É a base de linguagens de programação modernas É um investimento Linguagem estandardizada Muitos programas escritos em C / C++ È uma linguagem genérica Serve para vários fins É disciplinadora Programar com método É eficiente Existem bons compiladores

Ola mundo #include <stdio.h> int main(int argc, char* argv[]) Biblioteca de funções de entrada e saida de dados int main(int argc, char* argv[]) Função principal { } Definição de um bloco de instruções printf("ola mundo"); escrever return 0; Retorno do programa Olá mundo #include <stdio.h> int main(int argc, char* argv[]) { printf("ola mundo"); return 0; }

Algoritmos computacionais Acções de um algoritmo computacional Manipular dados Receber dados Guardar dados Imprimir dados Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

Tipos de dados em C Variáveis Simples Compostos Um nome Um Tipo Numéricos inteiros reais Caracter Lógico Compostos Matrizes Estruturas Uniões Variáveis Um nome Um Tipo Um só valor

Declaração de variáveis Tipo_de_dado nome_da_variável; Tipo_de_dado nome_da_variável = valor_inicial; Tipo_de_dado nome_da_variável1, nome_da_variável2, . . .; Exemplos int soma; float saldo = 0.0; doule x, y, z; NOTA A declaração das variáveis deve ser feita antes da sua utilização

Regras dos nomes de variáveis Pode ser constituído por letras do alfabeto por dígitos e pelo caracter _ (underscore) O primeiro caracter não pode ser um dígito As letras maiúsculas e minúsculas representam caracteres diferentes Não pode ter o nome de uma palavra reservado da linguagem Deve ser descritivo daquilo que armazena Caso tenha mais que uma palavra utilizar o caracter _ para unir as palavras ou capitular as iniciais Não é aconselhado A utilização de caracteres acentuados Começar por _ Ter apenas letras maiúsculas

Palavras reservadas do C

Atribuição de Valores – operador = variavel = expressão; Exemplos soma = 10 ; saldo = soma + 1; area = lado1 * lado2; NOTA O operado = é o operador de atribuição e significa que a variável passa a ter um novo valor (<- no portugol) O operador == (igual) é o operador de comparação e devolve verdadeiro ou falso ( = no portugol)

Atribuição de valores Valores na Base: 00 02 077 0123 Decimal numeração normal 0 2 63 83 Octal Começam por 0 (zero) 00 02 077 0123 Hexadecimal Começam por 0x (zero xis) 0x0 0x2 0x3f 0x53 atribuição do valor doze a x X = 12; X = 014; X = 0xC;

Inteiros - int NOTA Sinal Tamanho Exemplos signed – positivos e negativos 1 bit para representar o sinal unsigned – apenas números positivos Tamanho short – menor dimensão em bytes 2 bytes long – maior dimensão em bytes 4 bytes Exemplos unsigned short int x; signed short int y; unsigned long int total; long int votos; int nota; NOTA por defeito os inteiros são: signed 16 bits short 32 bits long

Alcance dos inteiros

exemplos Nota final da disciplina de IP unsigned short int nota; unsigned short nota; Soma das notas das disciplinas de uma aluno unsigned short int somaNotas; unsigned short somaNotas; Número de segundos de vida de uma pessoa unsigned long int numMinutos; unsigned long numMinutos; Diferença entre o número de segundos de duas pessoas signed long difSegundos; long difsegundos; Diferença entre o número de anos de duas pessoas signed short int difAnos; short difAnos;

Números Reais notação Tipo Representação float double Representação Base e Mantissa notação Notação corrente 1.23 .23 0.23 1. 1.0 Notação científica 1.2E10 1.23e-15 Modificadores long NOTA Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação Exemplo float raio = .50; long double taxa = 5E-2 ;

Erro nos Números Reais NOTA Os números armazenados em virgula flutuante podem comportar um erro de arredondamento resultante da sua representação

Caracteres (char) Caracteres especiais Modificadores \a Sinal sonoro Ocupam um byte 256 caracteres disponíveis Representados por um número Tabela ASCII Atribuição Utilização do caracter plica (‘) char sexo = ‘m’; char enter =‘\n’ Utilização directa do código ASCII char letra = 98; Modificadores signed unsigned \a Sinal sonoro \n New line \r Carriage return \v Vertical tabulation \t Horizontal tabulation \\ Caracter \ \’ Caracter ‘ \” Caracter “ \b Backspace \0xff Caracter 0xff ASCII

Tabela ASCII Exemplo char sexo; Sexo = ‘M’; Sexo = 77;

Definição de tipos - Enumerações Definição de nomes para valores Cores , Dias da semana , Meses, etc. enum semana{ segunda=2, terca=3, quarta=4, quinta=5, sexta=6, sabado=7, domingo=8 }; Exemplo enum semana teoricaIP, praticaIP; teoricaIP = segunda; praticaIP = teoricaIP +1 ;

Definição de tipos - Enumerações enum novo_tipo {nome_1=valor_1, nome_2, . . .,nome_n}; novo_tipo nome_variavel = nome_x; enum Cores {verde= 0 , amarelo = 1, vermelho =2 }; enum Cores semaforo = verde; enum logica {falso, verdadeiro }; enum logica condicao=verdadeiro; NOTAS Quando omitimos o valor a enumeração toma o valor da anterior mais uma unidade. Por defeito começam em zero

Valores lógicos (bool) Dois valores definidos false (valor zero) true (um ou qualquer outro valor) Exemplo bool aprovado, trabEstudante; aprovador = true; trabEstudante = false;

Definição de tipos - Typedef Definição de nomes para tipos typedef tipo_de_dado novo_nome_do_tipo ; Exemplos typedef unsigned long int int32; definição de um novo tipo chamado int32 int32 somatorio; definicao de uma variável do tipo int32

Tipos de dados do c++ Builder tamanho (bits) Mínimo Máximo unsigned char 8 255 char -128 127 short int 16 -32,768 32,767 unsigned int 32 4,294,967,295 int -2,147483648 2,147,483,647 unsigned long enum long float 1.18  10^-38 < |X| < 3.40  10^38 double 64 2.23  10^-308 < |X| < 1.79  10^308 long double 80 3.37  10^-4932 < |X| < 1.18  10^4932

Exercícos Defina variáveis em C para manipular A média das notas de um ano lectivo O salário de um trabalhador O número de alunos de um país O saldo de uma conta bancária Número de dias entre duas datas O sexo de um aluno Factor rhesus do sangue (+ e -) A situação de uma aluno relativo à aprovação A situação de uma aluno relativo á matrícula.

Entrada e saída de dados

Entrada e saida de dados scanf Entrada de dados pelo teclado printf Saída de dado para a consola scanf(“string de formato”, &variavel , &variavel ,…); scanf(“%f", &altura); scanf(“%d", &idade); scanf(“%f %d", &altura, &idade); printf(“string de formato”, variavel , variavel ,…); printf(“ a altura é %f :", altura); printf(“ a idade é %d :", idade); printf(“\n altura: %f idade :%d \n", altura, idade);

Formato de dados (I/O) c u s l d h f o e x caracter sem sinal cadeia de caracteres d inteiro f real no formato numérico e real no formato cientifico u sem sinal l grande h pequeno o octal x Hexadecimal

Programa gentil Exemplo #include <stdio.h> int main(int argc, char* argv[]) { int idade; printf(“qual a sua idade:”); scanf(“ %d ” , &idade); printf(“parabens, voce tem %d anos“, idade); }

Ficheiros gerados

Algoritmos computacionais Acções de um algoritmo computacional Manipular dados Receber dados Guardar dados Imprimir dados Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

Operadores

Qualquer operação entre inteiros devolve um inteiro Operadores unários - (sinal) Operadores binários + (Soma) - (Subtracção) / (Divisão inteira) % (Módulo) Exemplo 25 - 2 = 23 -3 - 2 = -5 25 / 2 = 12 25 + 2 = 27 25 % 2 = 1 25 * 2 = 50 NOTA Qualquer operação entre inteiros devolve um inteiro

Operadores unários – Pós fixo ++ (incremento) -- (decremento) Nota X++ X = X+1 Nota X-- X = X-1 Nota y = x++ y = x x = x+1 Nota y = x-- y = x x = x-1 x 3 y expressão y = x++; 4

Operadores unários – Pré fixo ++ (incremento) -- (decremento) Nota ++X X = X+1 Nota --X X = X-1 Nota y = ++x x = x+1 y = x Nota y = --x x = x-1 y = x x 3 y expressão y = --x; 2

Operadores bit a bit Manipulam directamente a representação binária dos números e (and) & ou (or) | ou exclusivo (Xor) ^ Deslocamento à esquerda << Deslocamento à direita >> E 1 OU 1 Multiplicação Lógica Soma Lógica xor 1 diferença Lógica

Operadores bit a bit - OR OU 1 x 91 y 128 expressão z = x | y ; z 219 Soma Lógica

Operadores bit a bit - AND 1 x 90 y 20 expressão z = x & y ; z 16 Multiplicação Lógica

Operadores bit a bit - XOR 1 x 90 y 20 expressão z = x ^ y ; z 78 diferença Lógica

Operadores bit a bit - Deslocamento x 20 y expressão y = x << 2; 80 Algoritmo deslocam-se os bites para a esquerda os últimos bites perdem-se introduzem-se zeros no inicio

Operadores bit a bit - Deslocamento x 20 y expressão y = x >> 2; 5 Algoritmo deslocam-se os bites para a direita os primeiros bites perdem-se introduzem-se zeros no fim

Operadores sobre reais Aritméticos multiplicação divisão soma subtracção expoente mantissa

Operadores compostos Variavel = variavel operador expressão += , -=,%=, *=, /=, >>=, <<=, &=, |=, ^= variável Operador= expressão Variavel = variavel operador expressão exemplos X+= 3; X = X+3; exemplos x/=y; x = x /y; exemplos X*= 3; X = X*3; exemplos X|= y; X = X | y;

Operadores sobre lógicos RELACIONAIS Maior > Menor < Igual == Maior ou igual >= Menor ou igual <= Diferente != LÒGICOS Conjunção && Disjunção || Negação !

Associatividade z 4 r 1 x 2 y 1 Associatividade direita => esquerda matriculado teste x 2 y 1 false false Associatividade direita => esquerda r =x + y + z 7 r = 7 teste = !matriculado teste = true x = -z x=-4 Associatividade esquerda=> direita x + y + z 3 + z 7 z / x * y 2 * z 2

Prioridade dos operadores

Algoritmos computacionais Acções de um algoritmo computacional Manipular dados Receber dados Guardar dados Imprimir dados Executar instruções Fazer operações aritméticas Fazer operações lógicas Escolha entre várias instruções. Repetir um conjunto de instruções

Exercícios Construa um programa que calcule a área de um rectangulo Inicio Ler lado1 Programa Área do rectângulo #include <stdio.h> int main(int argc, char* argv[]) { double Lado1, lado2, area; scanf(“%lf”, &lado1); scanf(“%lf”, &lado2); area = lado1 * lado2; printf(“ area = %lf ”, area); } Ler lado2 Area := lado1*lado2 Escrever Area fim

Exercícios Construa um programa que leia a nota teórica e a nota prática e imprima a nota final (não arredondada) da disciplina de IP Inicio Ler nTeorica Nota de IP #include <stdio.h> int main(int argc, char* argv[]) { float nTeorica, nPratica, nFinal; printf(“ introduza a nota teórica :“); scanf(“%f”, &nTeorica); printf(“ introduza a nota prática:“); scanf(“%f”, &nPratica); nFinal = nTeorica * 0.6 + nPratica * 0.4; printf(“A nota final e: %f “,nFinal); } Ler nPratica nFinal = nTeorica*0.6 + nPratica * 0.4 Escrever nFinal fim

Selecção de intruções

Linguagem estruturada Selecção Simples Linguagem estruturada C++ If (condição) { intrução; . . . } . . . Se <condição> então Instruções fim_se Fluxograma Condição V Exemplo Se x > 0 então escrever “numero:” ler numero fim_se Bloco de Instruções Um “Bloco de instruções” é limitado por chavetas { }

Selecção Simples (exemplo) Inicio Exemplo Ler totalFactura A empresa X faz um desconto de 15% em todas as facturas cujo total ultrapasse 1000 euros. Construa um programa que receba o total da factura e imprima o valor a pagar totalFactura >10000 v totalFactura = totalFactura *0.85 totalFactura Fim

Selecção Simples (exemplo) Calculo do total da factura #include <stdio.h> int main(int argc, char* argv[]) { float totalFactura; scanf(“%f”, &totalFactura); if( totalFactura > 1000.0) totalFactura*= 0.85; } printf(“ %f “, totalFactura); NOTA Se o bloco tiver apenas uma instrução podem omitir-se as chavetas

Visibilidade das variáveis int main(int argc, char* argv[]) { float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000){ double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(“%f”, totalFactura); return 0; Visibilidade das variáveis: Desde que são declaradas Até final do bloco

Selecção em Alternativa Linguagem estruturada Fluxograma C++ if (condição) { intrução1; . . . } else intrução2; . . . Se <condição> entao Instruções Senao Fim_se Condição V F Instruções Instruções Exemplo Se numero>0 então escreve “positivo” Senão escreve “negativo” Fim_se

Selecção em Alternativa (exemplo) Exercício Construa um programa que imprima “Par” ou “Impar” consoante o número introduzido pelo utilizador o é ou não.

Selecção Simples (exemplo) Programa par ou impar main() { int numero; printf( “ numero :”); scanf(“%d”,&numero); if( numero % 2 == 0) printf(“ O numero é par”); else printf(“ o número é impar”); } Inicio Ler n n % 2 = 0 V F Impar Par Fim

Selecção encadeada Exercício V1 > v2 e V1 > v3 Maior=v1 V2>v3 Maior=v2 Maior=v3 s n Exercício Construa um programa que imprima o maior de três número introduzido pelo utilizador

Selecção encadeada (exemplo) Programa maior de três int main(int argc, char* argv[]) { int v1, v2; v3; int maior; scanf(“ %d %d %d “, &v1, &v2, &v3); if( v1 > v2 && v1 > v3) maior= v1; else if( v2 > v3) maior= v2; maior=v3; } printf(“ O maior é %d :”, maior); return 0;

Exercício Contrua um programa que solicite ao utilizador a letra correspondente ao estado civil (S C D V ) e imprima por extenso o mesmo ou erro no caso de não ser um caractér válido

Exercício Estado civil main() { char ECivil; scanf(“%c”,&ECivil); if( ECivil ==‘S’) printf( “ Solteiro”); else if (ECivil ==‘C’ ) printf(“ Casado”); if ( ECivil == ‘D) printf(“Divorciado”); if(ECivil == ‘V’) printf(“Viuvo”); printf(“ERRO”); }

Selecção Múltipla switch switch ( expressão) { case constante1 : intruções; break; case constante2 : . . . case constanten : default: }

Exercício Estado civil #include <iostream.h> main(){ char ECivil; scanf(“%c”,&ECivil); switch ( ECivil) { case ‘S’ : printf( “solteiro”); break; case ‘C’ : printf(“casado”); case ‘D’ : printf(“Divorciado”); case ‘V’ : printf(“Viuvo”); default : printf(“ERRO”); }

Exercício Estado civil NOTA . . . case ‘d’ : switch ( ECivil) { printf( “Divorciado”); break; } NOTA A escolha termina: quando chegar ao fim quando encontrar a instrução break

Exercícios Construa um programa que indique se dois números introduzidos pelo utilizador são múltiplos um do outro. Construa um programa que calcule as raízes de uma equação de 2º grau. Altere o programa anterior para calcular as raízes reais e imaginárias.

Erros

Erros programas Os erros são a base da experiência. Erros de especificação Não compreendemos o problema Erros Lógicos O algoritmo está errado Erros de sintaxe O algoritmo está mal programado Erros de ligação Bibliotecas referenciadas que não existem Erros de execução Dados mal introduzidos Os erros são a base da experiência.

Erros de especificação Construir um programa que as calcule as interacções do spin de um electrão num campo gravitacional desconhecido dado o número de mesões e fermiões pertencentes ao meio. Não compreendo o problema !!!

Algoritmo ERRADO !!! Erros Lógicos Solteiro casado ou erro sim não não Inicio Solteiro casado ou erro ecivil sim ecivil=s não Estado = Solteiro Algoritmo ERRADO !!! não sim ecivil=c Estado = casado Estado = casado estado Fim

Erros de sintaxe mais comuns Escrita ambígua if(m == 0)     if(n == 0)         printf("m e n são zero.“); else     printf("m não é zero.“); Má identação

Erros de sintaxe mais comuns Esquecer as chavetas int main(int argc, char* argv[]) { float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000) double desconto = totalFactura* 0.85; totalFactura -= desconto; printf(“%f”, totalFactura); return 0; }

Erros de sintaxe mais comuns Colocar um ; a seguir ao if ou else int main(int argc, char* argv[]) { float totalFactura; sacanf(“ %f “, &totalFactura); if( totalFactura > 1000) ; double desconto = totalFactura* 0.85; totalFactura -= desconto; } printf(“%f”, totalFactura); return 0;

Erros de sintaxe mais comuns Esquecer o break; no ciclo switch Estado civil switch ( ECivil) { case ‘S’ : printf( “solteiro”); case ‘C’ : printf(“casado”); case ‘D’ : printf(“Divorciado”); case ‘V’ : printf(“Viuvo”); default : printf(“ERRO”); }

Conclusão

Construção de programas Especificação do problema Compreender o problema Desenvolvimento do algoritmo Especificar as entradas, saídas e uma forma de transformar as entradas em saídas Tradução do algoritmo para uma linguagem de programação programar Tradução do programa para linguagem máquina Compilar e linkar Executar o programa testar