estrutura de dados - aula de revisão (linguagem c/c++, função, vetor, matriz, ponteiros)

73
# Estrutura de Dados # Aula - Revisão de C/C++ na Prática Prof. Leinylson Fontinele Pereira

Upload: leinylson-fontinele

Post on 12-Apr-2017

587 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

# Estrutura de Dados #

Aula - Revisão de C/C++ na PráticaProf. Leinylson Fontinele Pereira

Page 2: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Na aula anterior...

Ponteiros

Funções

11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 3: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Introdução

11:28 3 Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 4: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

O que vamos aprender?

Preparação do ambiente de testes

Conceitos básicos de C

Sintaxe de alguns comandos# Structs, funções, ponteiros

11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 5: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

11:28 5 Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Linguagens de programação

Page 6: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

11:28 6 Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Linguagem CDesenvolvida inicialmentepor Dennis M. Ritchie e KenThompson no laboratórioBell no ano de 1972.

Baseada na linguagem Bcriada por Thompson, estalinguagem evoluiu dalinguagem BCPL, dandoorigem as duas linguagensanteriores.

Page 7: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Ambiente de Desenvolvimento – Opção 01

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 8: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Ambiente de Desenvolvimento – Opção 02

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 9: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Programa nº I

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 10: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Programa nº II

Page 11: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

A linguagem C

11:28

char tem 8 bits (não é 16 bits como em Java)

Não existe tipo booleano (usar int ou char):

0 falso

≠ 0 verdadeiro

Tipos inteiros podem ser: signed ou unsigned

Não tem tipo string: usa-se vetor de char

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 12: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Linguagem C: Tipos de dados

11:28

Tipos de dados primários - Tipos de dados derivados - Tipos definidos pelo usuário

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 13: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Linguagem C: Tipos de dados

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 14: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Exibindo uma saída

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 15: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

O comando return

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 16: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Vetores: conceito

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Um vetor (= array) é uma estrutura de dados que armazena uma sequência deobjetos, todos do mesmo tipo, em posições consecutivas da memória RAM (=random access memory) do computador.

Page 17: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Vetores: exemplo

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 18: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Entendendo Vetores

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 19: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Vetores: exercício

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Dado um vetor de inteiros, 𝑣[0. . 6] , crie umprograma para determinar se a sequência de númeroscorresponde a um palíndromo.

[1, 2, 3, 4, 3, 2, 1]: vetor palíndromo

[1, 2, 3, 4, 5, 6, 7]: não é vetor palíndromo

Page 20: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Qual é o número mínimo de comparações necessárias para verificar se um vetor de

tamanho N é ou não palíndromo?

Page 21: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Vetores: exercício

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 22: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Matriz: exercício

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

00000

00000

00000

00000

00000

Page 23: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Struct: exercício

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Quais são as informações de um Aluno para a Faculdade?- Nome- Matrícula- Série- Turma- Curso

No exemplo acima temos a estrutura Aluno que contém as informações ou ascaracterísticas de um aluno. Muito semelhante a um registro de banco de dados.

Podemos dizer que em uma estrutura, estamos armazenando informações agrupadas logicamente.

Page 24: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Construindo uma Struct

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

struct aluno

{

char nome[255];

int matricula;

int serie;

int turma;

char curso[100];

};

Nome da estruturaPalavra

reservada que

identifica uma

estrutura

Membros da estrutura

Chaves definem o

início e o fim da

estrutura

Termina com ponto

e vírgula

Page 25: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Struct

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 26: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Struct

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 27: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Struct

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 28: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Struct: acessando os campos

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 29: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Funções

11:28 30Estruturaaaaaaa

Page 30: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Funções: Estrutura de uma função

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Retorno

da função

Nome da função

Parâmetros da

função

Corpo da função

Escopo de início e fim da função

double somar(double x, double y){

double resultado = x + y;return resultado;

}

Page 31: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Ponteiros

11:28 32Estruturaaaaaaa

Page 32: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Ponteiros : Operadores

11:28

Para operação com ponteiros, utilizamos dois operadores unários:

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Operador Descrição

* Utilizado para declarar um ponteiro e para retornar o valor

& Utilizado para retornar o endereço de memória da variável

Page 33: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Declarando uma variável do tipo ponteiro

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

int *ptr;

Tipo da variável

Nome da variável

Operador

unário

Page 34: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Declaração e atribuição de ponteiros

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Variável

ponteiro

Atribuindo o endereço

de memória

int *ptr;

int valor;

valor = 1500;

ptr = &valor;

Page 35: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Ponteiros : Operadores

11:28

Se x é uma variável, então &x é o seu endereço

int s = 999

int *p = &s

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 36: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Ponteiros : Operadores

11:28

Todo ponteiro pode ter o valor NULL.

NULL é uma constante, geralmente vale 0 (definida no arquivo interface stdlib)

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 37: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Ponteiros: Exemplo

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 38: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Vetores e Ponteiros

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

Podemos usar ponteiros como se fossem matrizes:

int mat[] = { 1, 2 , 3 };

int *p = mat;

printf(“%d”, p[2]); // imprime 3

Page 39: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Exemplo

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

#include <stdio.h>

int main() {

int mat[50][50];

int i, j;

// percorre a matriz com dois loops

for (i = 0; i < 50; i++) {

for (j = 0; j < 50; j++) {

mat[i][j] = 0;

}

}

return 0;

}

Page 40: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Exemplo

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

#include <stdio.h>

int main() {

int mat[50][50];

int *p= (int *) mat, i;

// percorre a matriz com um único loop

for (i = 0; i < 2500; i++) {

*p = 0;

p++;

}

return 0;

}

É muito mais

rápido e diminui o

tamanho do código

Page 41: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Vetores e Ponteiros

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

int vetor[10];

int *ponteiro, i;

ponteiro = &i;

// as operações a seguir são inválidas

// ERRADO: vetor não é variável

vetor = vetor + 2;

// ERRADO: vetor não é variável

*vetor = 0;

// ERRADO: vetor não é variável

vetor = ponteiro;

Page 42: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Strings e Ponteiros

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

#include <stdio.h>#include <string.h>

int main() {char nome[15];char *p = “Revisão de C/C++”;// p pode ser usado como uma stringstrcpy(nome, p);printf("%s %s\n", nome, p);return 0;

}

Page 43: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Exemplo

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

#include <stdio.h>

int main() {char *s = "string";int a = 1, *p = &a;float f = 2.0;void *v;

v = p; // v aponta para um inteiroa = *((int *) v);v = s; // v aponta para uma strings = (char *) v;v = &f; // v aponta para um floatf = *((float *) v);

return 0;}

Page 44: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Matrizes de Ponteiros

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

// vetor de ponteiros

int *vetor[10];

// vetor de strings

char *strings[] = {"EU", "TU", "ELE" };

// matriz de ponteiros

int *matriz[2][2];

Page 45: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Ponteiros para Ponteiros

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

#include <stdio.h>

int main() {

int a = 10, *p, **pp;

p = &a;

pp = &p;

printf("%d\n", **pp); // imprime 10

return 0;

}

Obs.: Para acessar o valor

de a através de pp usamos

o operador * duas vezes

Page 46: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Aviso sobre Ponteiros!

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

#include <iostream>

using namespace std;

int main(){

int *ptr_inteiro;

double valor;

valor = 345.76;

ptr_inteiro = &valor;

cout << *ptr_inteiro << endl;

}

ERRO !!!

Page 47: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Cuidados ao utilizar ponteiros

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

// Errado - Não execute

int main () {

int a,*p;

a = 10;

*p = a; // Para onde p aponta???

return 0;

}

Page 48: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Diretivas de Compilação

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

Todas as diretivas começam por # e podem ser utilizadas em qualquer parte docódigo

Principais diretivas definidas no C ANSI:

#if, #ifdef, #ifndef, #else, #elif, #endif,#include,

#define, #undef, #error

Page 49: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

A Diretiva #include

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

Sintaxe: #include <nomeDoArquivo>

• O arquivo se encontra no path do compilador

#include “nomeDoArquivo”

• O arquivo se encontra em outro local

Exemplos: #include <string.h>

#include “pessoa.h”

Page 50: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

A Diretiva #define

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

Sintaxe: #define nomeDaMacro corpoDaMacro

copoDaMacro é opcional

Exemplos: #define TAMANHO 10

#define _WIN32

#define max(a,b) ((a>b)?(a):(b))

Page 51: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

A Diretiva #undef

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

Sintaxe: #undef nomeDaMacro

Exemplo: #undef max

Page 52: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

O comando return

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

Sintaxe: return nomeDaVariável;

nomeDaVariável não é usado em funções que retornam void

O return encerra a execução da função

Pode ser comparado com obreak usado nos loops

Uma função pode ter mais de um return

Page 53: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Exemplo

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

int dividir(int a, int b) {

if (!b) {

return 0; // evita a divisão por 0

}

return a / b;

}

Page 54: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Protótipos de funções

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

Os compiladores de C são muito eficientes, mas isto traz alguns problemas

Funções só podem ser usadas se forem definidas anteriormente

A solução é utilizar protótipos de funções

Sintaxe: tipoDeRetorno nomeDaFunção(tipo1, ... , tipoN);

Page 55: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Protótipos de funções

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

void b(int); // protótipo de b

void a(int i) {// ...b(i);// ...

}

void b(int j) {// ...a(j);// ...

}

Page 56: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Ponteiros para Funções

11:28Estrutura de Dados: Aula 02 - Estrutura de dados e TAD

Sintaxe: tipoDeRetorno (*nomeDoPonteiro) (tipoP1, ... , tipoPN)

Exemplo:

int (*p)(const char *);

p = puts; // inicializa

(*p) (“NASSAU”); // faz a chamada

Também podemos passar ponteiros para funções como parâmetro de outrasfunções

Page 57: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Desafio!

Page 58: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Desafio I

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

a = 1

b = 10

Page 59: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Desafio II

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

a = 10

b = 1

Page 60: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

A linguagem C++

11:28 61 Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 61: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

A linguagem C++

11:28

Total compatibilidade com C (qualquer programa em C é um programa C++)

C++ traz ainda: Classes e variáveis/funções membros (atributos/métodos);

Sobrecarga

Herança (permite herança múltipla)

Funções virtuais (sobrescrita de métodos)

Etc.

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 62: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

A linguagem C++

11:28

C++ não possui coletor de lixo como Java Porém as instruções de criação/destruição são mais simples do que malloc/free.

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 63: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Declaração de Classes

11:28

A declaração de uma classe diz o que as instâncias da classe podem fazer (contrato)

A definição/implementação de uma classe diz como as instâncias da classe farão oque encontra-se no contrato

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 64: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Sobrecarga

11:28

C++, assim como Java, permite sobrecarga Várias funções com mesmo nome

O mesmo nome é permitido, desde que os parâmetros sejam diferentes:

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 65: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Construtor

11:28

C++, assim como Java, permite sobrecarga Se nenhum construtor é dado, um construtor default (sem argumentos) é adicionado pelo C++

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 66: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Instâncias diretas ( . ) e ponteiros (->)

11:28

O ( . ) e ( -> ) são usados para acessar membros da classe

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 67: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Destrutores

11:28

Em C++, deve-se destruir as instâncias criadas, não há coletor de lixo

Destrutores devem liberar memória dinâmica alocada pela classe durante aconstrução da instância

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 68: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Resolução de escopo ( :: )

11:28

A implementação de um método é prefixada com o operador de resolução de escopo

Motivo: diferente de Java, o método não encontra-se obrigatoriamente dentro doescopo da classe

Pode-se usá-lo também para variáveis

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 69: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Concluindo...

11:28 70 Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 70: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Atividade 1

11:28

1) Implemente as seguintes funções: int mystrlen(char *c)

• retorna o tamanho da string c void mystrcpy(char *dest, char *orig)

• copia orig para dest void mystrcat(char *dest, char *orig)

• concatena orig em dest int mystrchar(char *str, char c)

• Retorna o índice onde c ocorre em str2) Declare um ponteiro para uma das funções que você fez no exercício anterior e chame-a utilizando o

mesmo3) Crie as seguintes macros:

min(a,b)• Retorna o mínimo entra a e b

isPar(a)• Retorna 1 se a for par e 0 caso contrário

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 71: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Material: https://sites.google.com/site/leinylsonnassau

11:28

Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Material baseado nas aulas de:

Algoritmos e Estruturas de Dados I, Prof. Jesús P. Mena-Chalco

Page 72: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Na próxima aula veremos...

Listas Estáticas

11:28 Estrutura de Dados: Aula - Revisão de C/C++ na Prática

Page 73: Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz, Ponteiros)

Alguma Dúvida?

11:28

Até a próxima aula...

[email protected]