Programação II. Introdução à Linguagem C

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

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

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

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

Programação Estruturada

3. Linguagem de Programação C

Introdução à Linguagem C

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

Linguagem de Programação. Thiago Leite Francisco Barretto

Linguagem C. Ricardo Terra. Ricardo Terra Linguagem C 1 de agosto de / 341

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

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

Linguagem C Princípios Básicos (parte 1)

Linguagens de Programação I

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

Introdução Linguagem C. UDESC - Prof. Juliano Maia 1

Programação científica C++

A Linguagem C. A forma de um programa em C

Introdução à Programação

Algoritmos e Programação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

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

Revisão C++ - Parte 1

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Slides trabalhados durante a quinta aula

Programação I A Linguagem C. Prof. Carlos Alberto

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

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

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

Métodos Computacionais

Linguagens de Programação

Linguagem de Programação C. Prof. Fabrício Olivetti de França

Conhecendo a Linguagem de Programação C

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

Variáveis primitivas e Controle de fluxo

Linguagem C. André Tavares da Silva.

Utilização da Linguagem C

Engenharia Elétrica AAM. Professor: Marco Shawn Meireles Machado

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Prof. Marcelo Machado Cunha Faculdade Pio Décimo

Tópicos em C. Eliade F. Lima

Revisão Linguagem C Parte 1

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

Introdução a Programação de Jogos

Programação de Computadores

4. Estruturas Fundamentais de Programação em C

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

RESUMO DE CONCEITOS BÁSICOS DE C

Linguagem de Programação C

Algoritmos II prof. Daniel Oliveira

Cláudio C. Rodrigues Faculdade da Computação - UFU. Faculdade da Computação - UFU 1

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

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

PLANO DE UNIDADE DIDÁTICA- PUD

Análise de Programação

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Laboratório de Programação II

Linguagem C para Microcontroladores

ECT1203 Linguagem de Programação

A linguagem C (visão histórica)

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

4 Variáveis. Unesp Campus de Guaratinguetá

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

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

Introdução a Linguagem C. Prof. Me. Hélio Esperidião

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

Introdução à Linguagem C

Estruturas de Dados. Profa. Juliana Pinheiro Campos

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1

Apostila de Linguagem C (Versão Incompleta)

Curso de C. Declaração de Variáveis 18/3/ :48 1

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

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

4. Constantes. Constantes pré-definidas

Introdução à Programação

CURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres

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

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

Características fundamentais de codificação de programas

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

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

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

Declarações. Tipos de Acesso, Inicialização e Constantes

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

Linguagem C Variáveis, Tipos de Dados, Comandos e Estrutura Linear

Curso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Introdução a Computação

Introdução a C. Para saber quais os procedimento ou funções que existem em cada biblioteca, acesse

Linguagem C Variáveis, Tipos de Dados, Comandos e Estrutura Linear

Introdução à Programação Estruturada Parte 3. Material da Prof. Ana Eliza

Linguagem C: Introdução

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

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

Transcrição:

Programação II Introdução à Linguagem C

Um Pouco da História da Linguagem C Origem: década de 70 (Dennis Ritchie) BCPL B C. Prover acesso de baixo nível ao hardware (CPU, I/Os e periféricos) e se entender bem com o Assembly. Portável para que o SO executasse em diferentes plataformas de hardware, além de ter um bom desempenho e otimizar o uso de memória.

Um Pouco da História da Linguagem C Dennis Ritchie

A Necessidade de uma Padronização Foi criado um padrão para C pelo ANSI (American National Standards Institute), em 1989 como ANSI X3.159-1989 Programming Language C, conhecido com ANSI C ou C89. Um ano depois o padrão foi adotado pela ISO (International Organization for Standardization) como ISO/IEC 9899:1990, também chamado de C90. Na prática, C89 (ANSI C) e C90 (ISO C) referem-se ao mesmo padrão.

A Necessidade de uma Padronização (2) A partir de 1990, a ISO ficou responsável pela evolução do padrão. Na década de 90 a ISO corrigiu alguns detalhes e publicou em 1999 o ISO/IEC 9899:1999, que ficou conhecido como C99. C1X é um nome não-oficial para um trabalho que começou em 2007, com o objetivo de revisar e definir um novo padrão para a linguagem C.

Características da Linguagem C É uma linguagem estruturada. Médio nível. Foi criada, influenciada e testada por programadores. É a mais popular entre os excelentes programadores.

Popularidade da Linguagem C

Popularidade da Linguagem C(2)

Compiladores x Interpretadores Compilador lê o programa inteiro, converte-o em um código-objeto (ou código de máquina) de modo que o computador consiga executá-lo diretamente. Interpretador lê o código-fonte linha a linha, executando a instrução específica daquela linha. Vantagens e desvantagens?

Características do Programa em C Declarações globais. Funções definidas pelo programador. Função main().

Características do Programa em C Declarações globais. Funções definidas pelo programador. Função main().

A função main() É o ponto de entrada de uma aplicação C. Uma aplicação C se inicia no método main e, a partir dele, invoca diversas outras funções. Por fim, essa função retorna um valor inteiro. Esse valor retornado não é impresso, serve apenas para indicar ao sistema operacional ou um aplicativo, qual foi o código de retorno. O retorno zero indica que o aplicativo encerrou conforme esperado. Os outros valores podem ser definidos conforme a necessidade de cada aplicação.

Palavras Reservadas em C auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while

Processo de Compilação Criar o programa. Compilar o programa. Linkeditar o programa com as funções necessárias da biblioteca. Com o uso de uma IDE, este processo é mais transparente.

Mapa de Memória em C Quatro regiões logicamente distintas: Código do programa; Variáveis globais; Pilha (stack variáveis locais e endereços de funções); Heap (região de memória livre a ser requisitada alocação dinâmica). Pilha Heap Variáveis Globais Código do Programa

C e C++ C++ é uma versão estendida e melhorada da linguagem C que é projetada para suportar programação orientada a objetos (POO). C++ contém e suporta toda a linguagem C e mais um conjunto de extensões orientadas a objetos. Você não pode programar em C++ se não souber C e tudo que aprender em C, poderá ser utilizado em C++.

IDEs Integrated Development Environment ou Ambiente de Desenvolvimento Integrado: Eclipse. Dev-Cpp.

Sintaxe Expressões É o elemento mais fundamental da linguagem C. São mais gerais e mais poderosas que na maioria das outras linguagens de programação. As expressões são formadas por: dados (representados por variáveis ou constantes); operadores. Exemplos: 2 + 4 * (7 3) (-b + sqrt(delta)) / (2 * a) calculararea(raio=3.98)

Sintaxe Tipos Básicos Caractere (char); Inteiro (int); Ponto flutuante (float); Ponto flutuante de precisão dupla (double); Sem valor (void). C não tem um tipo lógico (utiliza-se valores inteiros: 0 (false) e diferente de zero (true). Modificadores: signed, unsigned, long e short.

Sintaxe Tipos Básicos char: representa um caractere ASCII; 1 byte; na verdade, é um inteiro sem sinal (0 a 255).

Sintaxe Tipos Básicos int: representa um inteiro; 4 bytes (normalmente). float: representa um número decimal; 4 bytes (normalmente). double: representa um número decimal com maior precisão que float; 8 bytes (normalmente). void: determina que uma função não retorna nada.

Sintaxe Identificadores São os nomes de variáveis, funções, rótulos e vários outros objetos definidos pelo usuário. São case-sensitive (C é case-sensitive). Identificador válido: A primeira letra deve ser uma letra ou um underline ( _ ); As letras subsequentes devem ser letras, números ou underline. Exemplos: idade, nome, sexo, telefone1, a1, A1, _x, _y,...

Sintaxe Variáveis Uma variável é uma posição nomeada de memória, que é utilizada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser declaradas e inicializadas antes de serem utilizadas (C89).

Sintaxe Variáveis Uma variável pode ser declarada: dentro de funções (variáveis locais); como parâmetros de funções (parâmetros formais); fora de todas as funções (variáveis globais).

Sintaxe Variáveis Quais são as variáveis locais e globais? E os parâmetros formais?

Mapa de Memória em C Quatro regiões logicamente distintas: Código do programa; Variáveis globais; Pilha Pilha (stack variáveis locais e endereços de funções); Heap (região de memória livre a ser requisitada alocação dinâmica). Heap Variáveis Globais Código do Programa

Sintaxe Variáveis Quais são as variáveis locais e globais? E os parâmetros formais? Locais: resultado (main).

Sintaxe Variáveis Quais são as variáveis locais e globais? E os parâmetros formais? Locais: resultado (main). Globais: PI (fora de função).

Sintaxe Variáveis Quais são as variáveis locais e globais? E os parâmetros formais? Locais: resultado (main). Globais: PI (fora de função). Parâmetros Formais: valor1, valor2 (soma).

Sintaxe Modificadores de Acesso const: o valor da variável NÃO pode ser modificado pelo programa. Esse tipo de variável é útil quando se precisa garantir que um valor seja mantido até o final da execução do programa. Exemplos: 1) const double pi = 3.1415; 2) const int maioridade = 18;

Sintaxe Modificadores de Acesso volatile: o valor da variável PODE ser alterada de uma forma não especificada pelo programa, por comandos que fazem parte de outros programas (sistemas em tempo real ou programas concorrentes). Exemplos: 1) volatile char *port = 0x30; 2) volatile double dolar = 3.49;

Sintaxe Especificadores de Armazenamento extern: informa ao compilador que os tipos e nomes de variável que o seguem foram declarados em outro arquivo fonte.

Sintaxe Especificadores de Armazenamento extern: informa ao compilador que os tipos e nomes de variável que o seguem foram declarados em outro arquivo fonte. register: Variável armazenada de tal modo que seja o mais rápido possível.

Sintaxe Especificadores de Armazenamento extern: informa ao compilador que os tipos e nomes de variável que o seguem foram declarados em outro arquivo fonte. register: Variável armazenada de tal modo que seja o mais rápido possível. auto: Declaração de variáveis locais, porém não é utilizada. Por padrão, todas as variáveis não globais são auto.

Sintaxe Especificadores de Armazenamento static: mantém seus valores entre as chamadas (variáveis permanentes). É inicializada na primeira vez que a função é chamada. O que será impresso?

Sintaxe Especificadores de Armazenamento static: mantém seus valores entre as chamadas (variáveis permanentes). É inicializada na primeira vez que a função é chamada.

Sintaxe Constantes São valores fixos que o programa não pode alterar.

Sintaxe Constantes São valores fixos que o programa não pode alterar. 1) Constante inteira: 1, 2, 55, 89,

Sintaxe Constantes São valores fixos que o programa não pode alterar. 1) Constante inteira: 1, 2, 55, 89, 2) Constante ponto flutuante: 0.55, 3.14, 6.78,

Sintaxe Constantes São valores fixos que o programa não pode alterar. 1) Constante inteira: 1, 2, 55, 89, 2) Constante ponto flutuante: 0.55, 3.14, 6.78, 3) Constante caracter: 'A', 'f', 'X',

Sintaxe Constantes São valores fixos que o programa não pode alterar. 1) Constante inteira: 1, 2, 55, 89, 2) Constante ponto flutuante: 0.55, 3.14, 6.78, 3) Constante caracter: 'A', 'f', 'X', 4) Constante hexadecimal: 0xF (15), 0x18 (24),

Sintaxe Constantes São valores fixos que o programa não pode alterar. 1) Constante inteira: 1, 2, 55, 89, 2) Constante ponto flutuante: 0.55, 3.14, 6.78, 3) Constante caracter: 'A', 'f', 'X', 4) Constante hexadecimal: 0xF (15), 0x18 (24), 5) Constante octal: 017 (15), 025 (21),

Sintaxe Constantes São valores fixos que o programa não pode alterar. 1) Constante inteira: 1, 2, 55, 89, 2) Constante ponto flutuante: 0.55, 3.14, 6.78, 3) Constante caracter: 'A', 'f', 'X', 4) Constante hexadecimal: 0xF (15), 0x18 (24), 5) Constante octal: 017 (15), 025 (21), 6) Constante string: constantes em C, s, Oi...

Sintaxe Constantes Constantes caracter de barra invertida: \n (nova linha) \r (retorno do cursor em direção à margem esquerda) \t (tabulação horizontal em direção à margem direita) \' (aspas simples) \ (aspas duplas) \0 (nulo) \\ (barra invertida) \a (alerta - beep)

Sintaxe Operadores Aritméticos: + (soma); - (subtração); * (multiplicação); / (divisão); % (resto da divisão).

Sintaxe Operadores Aritméticos: atribuições compostas. += x += 2 (x = x + 2)

Sintaxe Operadores Aritméticos: atribuições compostas. += x += 2 (x = x + 2) -= x -= 2 (x = x 2);

Sintaxe Operadores Aritméticos: atribuições compostas. += x += 2 (x = x + 2) -= x -= 2 (x = x 2); *= x *= 2 (x = x * 2);

Sintaxe Operadores Aritméticos: atribuições compostas. += x += 2 (x = x + 2) -= x -= 2 (x = x 2); *= x *= 2 (x = x * 2); /= x /= 2 (x = x / 2);

Sintaxe Operadores Aritméticos: atribuições compostas. += x += 2 (x = x + 2) -= x -= 2 (x = x 2); *= x *= 2 (x = x * 2); /= x /= 2 (x = x / 2); %= x%= 2 (x = x % 2).

Sintaxe Operadores Aritméticos: atribuições compostas. += x += 2 (x = x + 2) -= x -= 2 (x = x 2); *= x *= 2 (x = x * 2); /= x /= 2 (x = x / 2); %= x%= 2 (x = x % 2).

Sintaxe Operadores Aritméticos: atribuições compostas. += x += 2 (x = x + 2) -= x -= 2 (x = x 2); *= x *= 2 (x = x * 2); /= x /= 2 (x = x / 2); %= x%= 2 (x = x % 2).

Sintaxe Operadores Aritméticos: incremento e decremento. ++ incrementa 1 -- decrementa 1

Sintaxe Operadores Aritméticos: incremento e decremento. ++ incrementa 1 -- decrementa 1 A posição faz diferença: ++ antes da variável: incrementa e retorna (pré). -- depois da variável: retorna e incrementa (pós).

Sintaxe Operadores Aritméticos: incremento e decremento. ++ incrementa 1 -- decrementa 1

Sintaxe Operadores Aritméticos: incremento e decremento. ++ incrementa 1 -- decrementa 1

Sintaxe Operadores Relacionais: == (comparação)!= (não igual / diferença) < (menor) <= (menor ou igual) > (maior) >= (maior ou igual)

Sintaxe Operadores Lógicos: && (and / e)

Sintaxe Operadores Lógicos: && (and / e) (or / ou)

Sintaxe Operadores Lógicos: && (and / e) (or / ou)! (not / não)

Sintaxe Operadores Bit a bit: ~ (complemento de um) << (deslocamento à esquerda) >> (deslocamento à direita) >>> (deslocamento à direita com sinal)

Sintaxe Comentários Comentário até o final da linha: Tudo digitado após ele na linha, é considerado comentário. int idade; // Variável para armazenar a idade do usuário. Comentário de bloco: Tudo escrito entre /* e */ é considerado comentário. /* Estou dentro de um comentário de bloco. Neste exemplo, o comentário ocupa três linhas. */

Sintaxe Estruturas de Decisão if if ( condição-1 ){ A condição retorna um tipo booleano. } comando-1; comando-2; comando-3; Os comandos somente serão executados se a condição for verdadeira. if ( condição-2 ){ } comando-1; Se existe somente um comando não é obrigatório o uso das chaves. Mas vamos sempre usar, combinado?!

Sintaxe Estruturas de Decisão if if ( condição-1 ){ Se a sentença for verdadeira, então... comando-1; comando-2; comando-3; } else{ } comando-4; comando-5; comando-6; Senão...

Sintaxe Estruturas de Decisão switch switch ( variável ){ } case 1: comando-1; break; case 2: comando-2; break; default: comando-padrão; Uma variável do tipo char ou int, é comparada com cada valor de case. Se um valor igual foi encontrado, as instruções depois do teste são executadas. Se nenhum valor for igual, a instrução default é executada. O comando break indica o fim do bloco.

Sintaxe Estruturas de Decisão Operador ternário: é útil para condicionais curtas e simples. Sintaxe: Operador ternário variável = <condição>? severdade : sefalso; Exemplo: int v1 = 2, v2 = 3; int r = ( v1 > v2 )? v1 : v2; // Qual o valor de r?

Sintaxe Exercícios

Sintaxe Estruturas de Repetição while: considerado um loop (laço) de pré-teste. while ( condição ){ comando-1; comando-2; comando-n; } Testa a condição antes de executar o bloco de comandos.

Sintaxe Estruturas de Repetição A variável de controle, que é testada na condição do while, deve ser inicializada e incrementada (ou decrementada).

Sintaxe Estruturas de Repetição Este código-fonte tem problema?

Sintaxe Estruturas de Repetição Este código-fonte tem problema?

Sintaxe Estruturas de Repetição Este código-fonte tem problema?

Sintaxe Estruturas de Repetição do..while: considerado um loop (laço) pós-teste. do{ comando-1; comando-2; comando-n; }while ( condição ); Testa a condição depois de executar o bloco de comandos.

Sintaxe Estruturas de Repetição A variável de controle, que é testada na condição do do..while, deve ser inicializada e incrementada (ou decrementada).

Sintaxe Estruturas de Repetição for: é composto por inicialização, condição e operação. for( inicialização; condição; operação ){ comando-1; comando-2; comando-n; }

Sintaxe Estruturas de Repetição for: é composto por inicialização, condição e operação. for( inicialização; condição; operação ){ } comando-1; comando-2; comando-n; Executado uma única vez no início do loop

Sintaxe Estruturas de Repetição for: é composto por inicialização, condição e operação. for( inicialização; condição; operação ){ } comando-1; comando-2; comando-n; Executado uma única vez no início do loop Executado antes de cada iteração.

Sintaxe Estruturas de Repetição for: é composto por inicialização, condição e operação. for( inicialização; condição; operação ){ } comando-1; comando-2; comando-n; Executado uma única vez no início do loop Executado antes de cada iteração. Executado ao final de cada iteração.

Sintaxe Estruturas de Repetição O que será impresso?

Sintaxe Estruturas de Repetição O que será impresso?

Sintaxe Estruturas de Repetição O que será impresso?

Sintaxe Estruturas de Repetição O que será impresso?

Sintaxe Estruturas de Repetição O que será impresso?

Sintaxe Estruturas de Repetição O que será impresso?

Sintaxe Estruturas de Repetição O que será impresso?

Sintaxe Estruturas de Repetição O ponto-e-vírgula indica o fim da instrução!!!

Sintaxe Estruturas de Repetição O que será impresso?

Vetores São coleções de um mesmo tipo em sequência. Podem ser de tipos primitivos (char, int, float, double), de um outro arranjo, de uma estrutura, de enumeração, etc... Estrutura homogênea de dados.

Declaração. Vetores

Vetores Acesso: é possível alterar ou recuperar qualquer elemento armazenado. Em C, o índice de um vetor inicia-se na posição 0 (zero). int idades[3]; O vetor idades[3] armazena três elementos. A indexação inicia-se em 0 (zero) e termina em 2 (3-1).

Vetores Vetor de caracteres: é como qualquer outro vetor. Se ele tem tamanho n, ele tem n posições disponíveis indexadas de 0 a n 1. char letras[3] = {'A', 'B', 'C'}; Para leitura e impressão utiliza-se o caracter %c. Tamanho pode ser obtido pela função sizeof().

Vetores Vetor de string: É finalizado pelo caracter '\0'. Se ele tem tamanho n, ele tem n posições disponíveis indexadas de 0 a n 2. char nomecidade[50]; gets(nome); Para leitura utiliza-se a função gets() e para impressão o caracter %s. Tamanho pode ser obtido pela função strlen().

Vetores Vetor multidimensional: É um vetor de vetor. O mais comum é o bidimensional, visto como uma matriz. int matrizidades[3][4]; // matriz de 3 linhas e 4 colunas. 0 1 2 0 1 2 3 11 12 13 14 21 22 23 24 31 32 33 34 Linhas Colunas

Funções Um programa em C é uma coleção de funções. Uma função PODE receber parâmetros, declarar variáveis locais, conter instruções e retornar um valor. Uma função NÃO PODE declarar outra função (por isso C não é classificada integralmente como estruturada em blocos).

Funções Uma das funções deve se chamar main. A função deve ser declarada antes do local onde é chamada. Uma função deve ser de um dos tipos básicos: int, float, double, char, void.

Funções Exemplo Parâmetros formais Chamada da função soma()

Funções A instrução return efetua o término da função. Uma função pode ou não retornar um valor para a função chamadora. Uma função pode ou não ter parâmetros formais.

Funções Exemplo Chamada da função soma()

Funções Exemplo Retorno da função

Funções Exemplo Prototipação (assinatura) Chamada da função soma() Declaração da função soma()

Funções A passagem de parâmetros é realizada para que a função receba os valores com os quais vai trabalhar (realizar o seu processamento). A passagem de parâmetros em C é sempre POR VALOR, ou seja, os valores são copiados da origem para o destino. Uma função pode ou não ter parâmetros formais.

Funções A passagem de parâmetros em C é sempre POR VALOR, ou seja, os valores são copiados da origem para o destino.

Funções Uma função pode retrornar valores de qualquer tipo (exceto vetores e outras funções). Uma função do tipo void não retorna nada. A expressão após o return é o valor retornado. O valor do retorno de uma função pode ser ignorado.

Funções O término de uma função ocorre quando: A chave de fechamento é encontrada; Ou quando o return é executado.

Funções Biblioteca Padrão Funções de E/S (stdio.h) printf(), scanf(), fprintf(), fscanf(), gets(), fwrite(), fread(),... Funções matemáticas (math.h) sin(), cos(), pow(), sqrt(),... Teste e manipulação de caracteres (ctype.h) isdigit(), isalpha(), toupper(),...

Funções Biblioteca Padrão Funções de uso geral (stdlib.h) malloc(), free(), exit(), rand(),... Manipulação de strings e vetores (string.h) strcpy(), strcmp(), strcat(), strlen(),... Manipulação de datas e horas (time.h) time(), clock(), localtime(),...

Ponteiros São variáveis que armazenam um endereço de memória, geralmente a posição de outra variável. Se uma variável p possui o endereço da variável x, então é correto dizer que p aponta para x. Por isso, este tipo de variável recebe o nome de ponteiro (apontador).

Ponteiros A declaração de um ponteiro é feita de acordo com as regras de declaração de identificadores em C. O símbolo * indica que a variável é ponteiro. tipo *nome-da-variável-ponteiro; Exemplos: int *pvalor; // ponteiro para variável inteira float *psalario; // ponteiro para variável float

Ponteiros Um ponteiro aponta para outra variável. Porém, é preciso inicializá-la, pois seu valor inicial é lixo de memória. O valor inicial de um ponteiro deve ser NULL. int *pvalor = NULL; // não aponta para nenhum endereço. Usa-se o %p para imprimir o endereço de memória: printf( O ponteiro pvalor aponta para %p, pvalor);

Ponteiros Existem dois operadores especiais para ponteiros: * e &. O operador & é unário e retorna o endereço de memória do seu operando (variável).

Ponteiros

Ponteiros

Ponteiros No exemplo anterior, a variável pvalor recebe o endereço de memória que contém a variável valor. O endereço não tem nenhuma relação com o valor da variável valor. O operador & pode ser lido como retorna o endereço de.

Logo, no exemplo acima, aux recebe o valor da variável apontada por pvalor. Ponteiros O operador * é o complemento de &. É um operador unário que retorna o valor da variável localizada na posição de memória que o segue. int aux = *pvalor; O operador * pode ser lido como retorna o valor da variável apontada por.

Ponteiros

Ponteiros valor = 11 int valor = 11;

Ponteiros valor = 11 pvalor int valor = 11; int *pvalor;

Ponteiros valor = 11 Pvalor = 1001 int valor = 11; int *pvalor; pvalor = &valor;

Ponteiros valor = 11 aux Pvalor = 1001 int valor = 11, aux; int *pvalor; pvalor = &valor;

Ponteiros valor = 11 aux = 11 Pvalor = 1001 int valor = 11, aux; int *pvalor; pvalor = &valor; aux = *pvalor;

Ponteiros valor = 11 aux = Pvalor = 1001 int valor = 11, aux; int *pvalor; pvalor = &valor; aux = *pvalor; // * acessa o conteúdo do endereço

Ponteiros valor = 11 aux = 11 Pvalor = 1001 int valor = 11, aux; int *pvalor; pvalor = &valor; aux = *pvalor; // * acessa o conteúdo do endereço

Ponteiros valor = 22 aux = 11 Pvalor = 1001 int valor = 11, aux; int *pvalor; pvalor = &valor; aux = *pvalor; // * acessa o conteúdo do endereço valor = 22;

Ponteiros valor = 22 aux = 11 Pvalor = 1001 int valor = 11, aux; int *pvalor; pvalor = &valor; aux = *pvalor; // * acessa o conteúdo do endereço valor = 22; *pvalor = 33; // O que será alterado?

Ponteiros valor = 33 aux = 11 Pvalor = 1001 int valor = 11, aux; int *pvalor; pvalor = &valor; aux = *pvalor; // * acessa o conteúdo do endereço valor = 22; *pvalor = 33; // O conteúdo da variável valor.

Ponteiros valor = 33 aux = 11 Pvalor = 1001 int valor = 11, aux; int *pvalor; pvalor = &valor; aux = *pvalor; // * acessa o conteúdo do endereço valor = 22; *pvalor = 33; pvalor = 44; // O que será alterado?

Ponteiros????? valor = 33 aux = 11 Pvalor = 44 int valor = 11, aux; int *pvalor; pvalor = &valor; aux = *pvalor; // * acessa o conteúdo do endereço valor = 22; *pvalor = 33; pvalor = 44; // O endereço para onde pvalor aponta.

Ponteiros Embora em C a passagem de parâmetros seja por valor, é possível simular uma chamada por referência. Passa-se o endereço de uma variável para um ponteiro (parâmetro formal na função). O endereço da variável é passado para a função, permitindo que o valor da variável seja alterado na função que recebeu seu endereço.

Ponteiros

Ponteiros

Ponteiros

Exercícios 1) Escreva um programa que leia dois valores inteiros para as variáveis num1 e num2. Depois, faça uma função para trocar os valores entre num1 e num2. Ou seja, o valor de num1 é gravado em num2 e o valor de num2 é gravado em num1, sem perder os valores originais. Esta função deve passar os valores por valor. 2) Faça uma função para o exercício anterior que utilize a passagem de parâmetros por referência (via ponteiros).

Ponteiros 1) Escreva um programa que leia dois valores inteiros para as variáveis num1 e num2. Depois, faça uma função para trocar os valores entre num1 e num2. Ou seja, o valor de num1 é gravado em num2 e o valor de num2 é gravado em num1, sem perder os valores originais. Esta função deve passar os valores por valor. 2) Faça uma função para o exercício anterior que utilize a passagem de parâmetros por referência (via ponteiros).

Ponteiros e Funções

Ponteiros e Funções main num1 num2 num3???

Ponteiros e Funções main num1 num2 num3 5??

Ponteiros e Funções main num1 num2 num3 5 3?

Ponteiros e Funções main num1 num2 num3 5 3?

Ponteiros e Funções funcaoteste n1 n2 return 5 3? main num1 num2 num3 5 3?

Ponteiros e Funções funcaoteste n1 n2 return 5 8? main num1 num2 num3 5 3?

Ponteiros e Funções funcaoteste n1 n2 return 5 8 12 main num1 num2 num3 5 3?

Ponteiros e Funções main num1 num2 num3 5 3 12

Ponteiros e Funções main num1 num2 num3 5 3 12

Ponteiros e Funções

Ponteiros e Funções main num1 num2 num3???

Ponteiros e Funções main num1 num2 num3 5??

Ponteiros e Funções main num1 num2 num3 5 3?

Ponteiros e Funções main num1 num2 num3 5 3?

Ponteiros e Funções funcaoteste n1 n2 return 5? main num1 num2 num3 5 3?

Ponteiros e Funções funcaoteste n1 n2 return 5? main num1 num2 num3 5 8?

Ponteiros e Funções funcaoteste n1 n2 return 5 12 main num1 num2 num3 5 8?

Ponteiros e Funções main num1 num2 num3 5 8 12

Ponteiros e Funções main num1 num2 num3 5 8 12

Bibliografia C Completo e Total (Herbert Schildt). Linguagem C (Luis Damas). Apostila C Ansi (Ricardo Terra).