Elementos da Linguagem C. K&R: Capitulo 2

Documentos relacionados
K&R: Capitulo 2 IAED, 2012/2013

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

3. Linguagem de Programação C

4.1- Aritméticos + soma - subtração * multiplicação / divisão % módulo (resto da divisão de inteiros ).

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Introdução à Ciência da Computação scc-120

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C

Estruturas de Dados. Módulo 2 Expressões. 9/8/2005 (c) Marco A. Casanova - PUC-Rio 1

3. Linguagem de Programação C

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Linguagens de Programação I

Tipos Primitivos, estruturas de iteração e decisão.

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Introdução à Linguagem C Variáveis e Expressões

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Objectivos. Observar os tipos fornecidos pelo C++ Explicar as regras sintácticas para nomes de identificadores Estudar variáveis e constantes

Linguagem Java - Introdução

Linguagens de Programação

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

Cap. 2 Expressões na linguagem C

SCC-120 INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO

Sintaxe da linguagem Java

Programação com Acesso a BD. Programação com OO Acesso em Java

Tópicos de hoje: Cap. 2 Expressões na linguagem C. Bits, Bytes e Palavras. Variáveis e Constantes. Números inteiros num Byte

Introdução à programação

Introdução à Programação

1/50. Conceitos Básicos. Programa Básico

Ambientação com a Sintaxe de Java: parte 1

Princípios de Desenvolvimento de Algoritmos MAC122

Laboratório de Programação II

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

RESUMO DE CONCEITOS BÁSICOS DE C

Linguagem C Operadores

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Aula 4 - Operadores. Prof. Laura Silva de Assis. Engenharia de Computação 2 o Período

Programação Estruturada

Revisão Linguagem C Parte 1

Introdução à Computação MAC0110

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C

Java 2 Standard Edition Tipos, literais, operadores e controle de fluxo

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Linguagem C Operadora

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Elementos Básicos. C# - Elementos básicos. Primeiro programa Tipos de dados Variáveis Constantes Expressões e operadores Controlo de fluxo Tabelas

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

quadrado(a)*0.5 -((a+2)*f(x,(1.0+n)/x)) Arquitectura de Computadores (2008/2009) - Linguagem C - Expressões 2

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Revisão C++ - Parte 1

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

Linguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira

Fundamentos de Programação

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores VARIÁVEIS E TIPOS DE DADOS

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

Variáveis e Operadores em C

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Programação científica C++

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

7 Operadores e Expressões

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Tipos de Dados Simples (Continuação)

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Fundamentos de Programação

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Introdução à Programação SCC-121

01/08/2011 PROGRAMAÇÃO EM LINGUAGEM C. Histórico

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

4 Variáveis. Unesp Campus de Guaratinguetá

Expressões lógicas, expressões condicionais, prioridades e operadores, base binária, operadores de bits

Introdução à Linguagem C++

C Operadores e Expressões

Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C

Conceitos Básicos de C

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

Expressões Formato Expressões de atribuição Avaliação de expressões Efeitos laterais Conversão de tipos, implícita e explícita

Operadores. Tipo de operadores. Aritméticos. Relacionais. Lógicos. Bit a bit. Cálculos aritméticos: soma, subtracção, multiplicação, divisão, etc.

Introdução à Linguagem C

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Linguagem de Programação C

Diagramas Sintáticos

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Funções getchar() e putchar()

PIC - PROGRAMAÇÃO LINGUAGEM C. AUTOR: ENG. ANTONIO CARLOS LEMOS JÚNIOR

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

Operadores e Expressões: bit-a-bit e especiais

Programação. MEAer. Expressões e Instruções. Bertinho Andrade da Costa. Instituto Superior Técnico. 2011/2012 1º Semestre

Legibilidade do código fonte

Transcrição:

Elementos da Linguagem C K&R: Capitulo 2 IAED Tagus, 2009/2010

Elementos da Linguagem C Identificadores Tipos Constantes Declarações Operadores aritméticos, lógicos e relacionais Conversões de tipos Operadores de incremento e decremento Operações bit a bit Operações de atribuição e expressões Expressões condicionais Precedência e ordem de avaliação 2 IAED Tagus, 2009/2010

Identificadores Sequências de letras, underscore, ou dígitos Primeiro caracter é letra ou underscore Frequentemente nomes nas bibliotecas começam com underscore identificador diferente de Identificador variaveis em minúsculas e CONSTANTES em maiúsculas Variáveis internas: primeiros 31 caracteres significativos Variáveis externas e funções: 6 primeiros caracteres significativos sem distinção de maiúsculas/minúsculas Nomes reservados: if, else, int, float, etc 3 IAED Tagus, 2009/2010

Tipos de Dados char, int, float, double short int (short), long int (long) signed/unsigned char, short, int, long unsigned obedece aritmética módulo 2 n (n=número bits) signed char entre -128 e 127 Tamanhochar: 1 byte Tamanho típico int: 4 bytes Tamanhoshort tamanhoint tamanholong long double Obter o tamanho de um tipo: sizeof() 4 IAED Tagus, 2009/2010

Constantes Numéricas int: 1234 long: 1234l ou1234l ou123456789012 (maior que o maiorint) unsigned: 1234u ou1234u unsigned long: 1234ul ou1234ul long float: 100.0l ou100.0l int em notação octal: 037 int em notação hexadecimal: 0x1f ou0x1f Seguidos de L (long) ou de U (unsigned) double: 100.0 ou1.0e2 float: 100.0f ou100.0f 5 IAED Tagus, 2009/2010

Constantes com Caracteres char são inteiros 0 representa 48 (entrada 48 tabela ASCII é 0 ) Caracteres de escape: caracteres especiais (ex:\n,\t,etc) "Uma string" Representação interna U m a s t r i n g \0 Diferença entre"x" e x? Comprimento de uma string: int strlen(char s[]) 6 IAED Tagus, 2009/2010

Constantes - Tipos Enumerados Tipo enumerado definido por sequência de constantes enum resposta { NAO, SIM } Tiporesposta tem duas constants: NAO e SIM Constantes de tipo enumerado têm valor inteiro (int): a primeira constante vale 0, a segunda vale 1, etc Tiporesposta: NAO vale 0 e SIM vale 1 Pode-se especificar valores para as constantes ou não enum meses { JAN=1, FEV=2, MAR, ABR, MAI, JUN, JUL, AGO, SET, OUT, NOV, DEZ } Compilador verifica valores guardados 7 IAED Tagus, 2009/2010

Declarações de Variáveis Precedem utilização e especificam tipo e lista das variáveis Sequência de declarações: int superior, inferior, passo; char c, linha[1000]; Alternativa: int superior; int inferior; int passo; char c; char linha[1000]; 8 IAED Tagus, 2009/2010

Declarações de Variáveis Inicialização de variáveis externas e estáticas: <tipo> <variável> = <expressão constante>; Caso de omissão: valor 0 Exemplo: int pi = 3.14159; Inicialização de variáveis automáticas: <tipo> <variável> = <expressão>; Caso de omissão: valor indefinido Exemplo: int i = 0; 9 IAED Tagus, 2009/2010

Declarações de Variáveis Constantes const pode anteceder qualquer declaração Significa que valor não vai mudar Compilador pode tirar partido Exemplos: const double e = 2.71828182845905; const char msg[] = "bem vindo ao C"; int strlen(const char[]); 10 IAED Tagus, 2009/2010

Operadores Operadores Aritméticos: +, -, *, / e % Situação de overflow e underflow: reacção não definida Operadores Relacionais: >, >=, <, e <= (precedências iguais), == e!= (precedências inferiores) Operadores Lógicos:!, && e. Precedências: aritméticos, relacionais, && e && e avaliam argumentos da esquerda para direita e param quando argumentos são suficientes para definir valor Valor numérico de expressão lógica é1se expressão é verdadeira e 0 se falsa 11 IAED Tagus, 2009/2010

Conversão de Tipos Argumentos de operadores de diferentes tipos provocam transformação de tipos dos argumentos Algumas conversões automáticas: de representações estreitas para representações mais largas. Exemplo: conversão de int parafloat emf + i char é inteiro pequeno e podem-se fazer contas int atoi(char s[]) { int i,n; n = 0; for (i=0; s[i]>= 0 && s[i]<= 9 ; ++i) n = 10 * n + (s[i] - 0 ); return n; } 12 IAED Tagus, 2009/2010

Conversão de Tipos Quando operador binário (+, *, etc) tem operandos de tipos diferentes, tipos dos operandos convertidos Quando não há argumentos unsigned: Se algum dos operandos élong double, converte outro para long double Caso contrário, se um dos operandos édouble, converte outro paradouble Caso contrário, se um dos operandos éfloat, converte outro parafloat Caso contrário, converteshort paraint e se algum dos operandos for long, converte o outro paralong 13 IAED Tagus, 2009/2010

Conversão de Tipos Conversão forçada de tipos: utilização de operador cast (<tipo>) <expressão> Valor <expressão> convertido para tipo<tipo> como se tratasse de atribuição Exemplo: int i = (int) 2.34; Conversão de float paraint: truncagem Conversão de double parafloat: truncagem ou arredondamento Nas chamadas a funções, há conversão de tipos 14 IAED Tagus, 2009/2010

Operadores de Incremento e Decremento Operador incrementar variável (++) e decrementar variável (--) e retorna valor variável Operadores prefixos (++<var>, --<var>) primeiro incrementa/decrementa e depois retorna valores Operadores posfixos (<var>++, <var>--) primeiro retorna valor e depois incrementa/decrementa Se n é5, qual é o valor de x depois de x=n++? Se n é5, qual é o valor de x depois de x=++n? 15 IAED Tagus, 2009/2010

Operações bit a bit Manipular bits em inteiros (char, short, int, long): & AND bit a bit OR bit a bit ˆ XOR (OR exclusivo) bit a bit << shift left >> shift right complemento de 1 Ex: n = n & 0177; Põe a zero todos os bits que não os 7 de ordem mais baixa n = n SET_ON; Põe a um os bits que estão a um emset_on Se x = 1; y = 2;, valor de x & y? E x && y? 16 IAED Tagus, 2009/2010

Operações bit a bit n = x ˆ y; Põe emna um (zero) os bits que emxe y são diferentes (iguais) x «2 Desloca bits 2 posições esquerda. Espaço preenchido com 0 x» 2 Desloca bits 2 posições direita. Espaço preenchido com 0 17 IAED Tagus, 2009/2010

Atribuições e Expressões i = i + 1; pode ser reescrito comoi += 1; += é um operador atribuição Outros operadores correspondentes a -, *, /, %, >>, <<, &, ˆ, <expr1> <op> = <expr2> equivale a <expr1> = (<expr1>) <op> (<expr2>) Vantagens operadores atribuição: mais próximo maneira de pensar de humanos; Ex: i += 2; simplifica leitura de expressões complicadas; Ex: yyval[yypv[p3+p4]+yypv[p1+p2]] += 2; 18 IAED Tagus, 2009/2010

Expressões Condicionais Expressão condicional: expressão cujo valor depende de uma outra expressão <expr1>? <expr2> : <expr3> Se <expr1> for verdadeiro, valor da expressão é<expr2> Se <expr1> for falso, valor da expressão é<expr3> Exemplo: z = (a > b)? a : b; if (a > b) z = a; else z = b; 19 IAED Tagus, 2009/2010

Tabela de Precedência e Ordem de Avaliação () [] ->. ED! ++ -- + - * & (tipo) sizeof DE * / % ED + - ED << >> ED < <= > >= ED ==!= ED & ED ˆ ED ED && ED ED?: DE = += -= *= /= %= &= ˆ= = <<= >>= DE, ED 20 IAED Tagus, 2009/2010

IBM PC 5150: o primeiro PC 21 IAED Tagus, 2009/2010