A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Estrutura, Pesquisa e Ordenação de Dados

Apresentações semelhantes


Apresentação em tema: "Estrutura, Pesquisa e Ordenação de Dados"— Transcrição da apresentação:

1 Estrutura, Pesquisa e Ordenação de Dados
CONTEÚDO (1) Apresentação da disciplina (2) Compilador DevC++ (3) ANSI C: visão geral

2 Horário: Objetivos: Bibliografia: Informações Gerais
(1) Apresentação da Disciplina Informações Gerais Horário: Terça e quinta às 20:30 Objetivos: Introduzir o conceito de tipo de dados (TAD), evidenciando aspectos de implementação, aplicações e complexidade Apresentar estruturas de dados básicas (listas lineares, pilhas, filas, árvores) Apresentar métodos de busca e classificação de dados em memória principal utilizando estruturas de dados básicas Bibliografia: TENENBAUM, A.; Langsam, Y.; Augenstein, M.: Estruturas de dados usando C. São Paulo: Bookman. (LIVRO TEXTO) VILLAS, Marcos Vianna et AL. Estrutura de dados: conceitos e técnicas de implementação. Rio de Janeiro: Campus. (LIVRO TEXTO) DROZDEK, Adam. Estruturas de Dados e Algoritmos em C++.São Paulo: Pioneira Thomson Learning (LEITURA COMPLEMENTAR)

3 Cronograma SEMANA DESCRIÇÃO REF UNID I UNID II UNID III
(1) Apresentação da Disciplina Cronograma SEMANA DESCRIÇÃO REF UNID I Estruturas de dados básicas (listas encadeadas, filas e pilhas) 1ª sem/AGO Nivelamento em ANSI C Duas semanas iniciais de conceitos básicos (apresentação do compilador, estruturas de controle, estruturas, vetores, strings e ponteiros) Essencial a resolução das listas de exercícios em casa (1) UFMG (2) UFPB OBS: PDFs disponíveis no site do professor 2ª sem/AGO 3ª sem/AGO Listas encadeadas Essencial a presença na aula de exercícios em laboratórios dia 21/8 (1) VILLAS (2) TENENBAUM 4ª sem/AGO 1ª sem/SET Recursividade, pilhas e filas PROVA 1 (unidade I): 09/09 UNID II Métodos de busca e classificação de dados 2ª sem/SET 3ª sem/SET 4ª sem/SET 1ª sem/OUT Busca linear e binária Bubble sort, selection sort, quick sort, insertion sort, merge sort (1) TENENBAUM (2) DROZDEK 2ª sem/OUT 3ª sem/OUT Tabela Hash PROVA 2 (unidade II): 21/10 UNID III Árvores e Grafos 4ª sem/OUT 1ª sem/NOV 2ª sem/NOV 3ª sem/NOV Árvores 4ª sem/NOV 1ª sem/DEZ Grafos PROVA 3 (unidade III): 09/12

4 (1) Apresentação da Disciplina
Motivação inicial... Troque as posições dos sapos (os machos para a direita e as fêmas para a esquerda) Depois de resolvido o problema, represente sua solução no papel Estamos interessados no passo a passo para achar a solução Forma livre de representação: português, desenho, algoritmo, etc

5 Processo de Geração de Código
(2) DevC++ Compiladores de C C é uma linguagem compilada Windows UNIX Linux Processo de Geração de Código Código-Fonte Código-Objeto .C .OBJ Compilar Executável .EXE 10010 Linkar OPÇÕES: Turbo C++ DevC++ (Free) Borland C++ C++Builder Notepad Bibliotecas .OBJ

6 Idealizada e implementada por Dennis Ritchie Objetivo:
(3) ANSI C Histórico Criada na Bell Labs divisão da AT&T, famosa companhia americana de telecomunicações Idealizada e implementada por Dennis Ritchie Quando? 1970 Objetivo: gerar uma linguagem de “alto nível”, em oposição à linguagem Assembly desenvolver uma linguagem capaz de executar em qualquer plataforma Uso geral: Unix, Clipper, Lotus 1 2 3, Excel, DBase III e IV, Oracle Principais características: Modularidade e Portabilidade Padrão ANSI C

7 Comandos em letras minúsculas
(3) ANSI C Primeiro programa... C é CASE SENSITIVE Soma, SOMA, SoMa ou sOmA. Comandos em letras minúsculas if e for, por exemplo If ou For são interpretados como variáveis Primeiro Programa: #include <stdio.h> /* Um Primeiro Programa */ int main () { printf ("Ola! Eu estou vivo!\n"); getchar(); return(0); } CONSIDERAÇÕES Biblioteca de E/S: stdio.h Comentário: /* aqui */ Função: main() retorna inteiro Delimitador de bloco {bloco} Função de E/S: printf() Constante de nova linha: \n Retorno de função: return()

8 C possui os seguintes tipos
(3) ANSI C Tipos C possui os seguintes tipos

9 Segundo Programa: Segundo programa... #include <stdio.h>
(3) ANSI C Segundo programa... Segundo Programa: #include <stdio.h> int main () { int dias; /* Declaracao de Variaveis */ float Anos; printf ("Entre com o número de dias: "); /* Entrada de Dados*/ scanf ("%d",&Dias); Anos=Dias/365.25; /* Conversao Dias->Anos */ printf ("\n\n%d dias equivalem a %f anos.\n",Dias,Anos); getchar(); } CONSIDERAÇÕES Declaração de Variável: tipo <id> Ex: float Anos; /* variável de ponto flutuate, ie, real de Pascal */ Função de E/S: scanf() “%d” – leia um inteiro &Dias – armazene nesse endereço Conversão de tipo: float <- int Função printf() com vários argumentos

10 Operadores aritméticos e de atribuição
(3) ANSI C Operadores aritméticos e de atribuição Aritméticos e de Atribuição Binários: +, -, *, /, % Unários: +, -, ++, -- x = a / b; y = a % b; z1 = z / b; z2 = a/b; z3 = w/b; Ex: int a = 17, b = 3; int x, y, w; float z = 17, z1, z2, z3;

11 Comandos de Controle de Fluxo
(3) ANSI C Comandos de Controle de Fluxo if: desvio condicional Sintaxe: If (condição) instrução; Ex1: #include <stdio.h> int main () { int num; printf ("Digite um numero: "); scanf ("%d",&num); if (num>10) printf ("\n\nO numero eh maior que 10"); if (num==10) printf ("\n\nVoce acertou!\n"); printf ("O numero e igual a 10."); } if (num<10) printf ("\n\nO numero eh menor que 10"); getchar(); CONSIDERAÇÕES O comando “if” exige o uso de parênteses O que está de errado no teste? if(num=10) ... // isto estah errado Operadores de comparação: >, <, >=, >=, == e != Operador de atribuição: =

12 Comandos de Controle de Fluxo
(3) ANSI C Comandos de Controle de Fluxo for: laço de repetição Sintaxe: for(inicialização;condição;incremento){ instrução; } Ex2: #include <stdio.h> int main () { int i; for (i=0;i<10;i++) { printf ("\n Executou %d vez(es)“,i); while: laço de repetição Sintaxe: while(condição){ instrução; } Ex3: #include <stdio.h> int main () { int i; i=0; // inicialização while (i<10) { //condição printf ("\n Executou %d vez“,i); i++; //incremento

13 Comandos de Controle de Fluxo
(3) ANSI C Comandos de Controle de Fluxo Ex: Este programa imprime o alfabeto (letras maiúsculas) #include <stdio.h> int main() { char letra; for(letra = 'A' ; letra <= 'Z' ; letra =letra+1) printf("%c ", letra); } CONSIDERAÇÕES O valor inicial de “letra” é 65 ou ‘A’ Portanto, letra pode ser incrementado

14 Comandos de Controle de Fluxo
(3) ANSI C Comandos de Controle de Fluxo Auto-avaliação Explique porque está errado fazer a instrução abaixo. O que irá acontecer? if (num=10) ... Escreva um programa que coloque os números de 1 a 100 na tela na ordem inversa (começando em 100 e terminando em 1) Escreva um programa que coloque os números ímpares de 1 a 100 na tela. O operador MOD de pascal é o % em C, ex: 10 % 2 resulta em 0.

15 Sintaxe de uma função em C:
(3) ANSI C Função Sintaxe de uma função em C: tipo_de_retorno nome_da_função (lista_de_argumentos) { código_da_função } Se for “void” não retorna nada Se estiver vazio, não possui argumentos Ex1: uma função que imprime uma string #include <stdio.h> int mensagem () /* Funcao simples: so imprime Ola! */ { printf ("Ola! "); return(0); } int main () mensagem(); printf ("Eu estou vivo!\n"); CONSIDERAÇÕES Saída igual ao “Primeiro Programa” Diferença entre main() e o resto

16 Auto-avaliação Função
(3) ANSI C Função Auto-avaliação Escreva uma função que recebe dois inteiros e retorna a soma entre eles Escreva uma função que receba dois floats e retorne o menor entre eles

17 Expressão Tabela de Precedência Combinação de variáveis, constantes
(3) ANSI C Tabela de Precedência Expressão Combinação de variáveis, constantes e operadores Em C, toda expressão resulta em um valor Ex: int i=1,a=4,b=2,c=1,d=8,e=4; i = i+3; //resulta em 4 c= a*b + d/e; c= a*(b+d)/e; c>2?1:0 As sub-expressões são avaliadas de acordo com a Tabela de Precedência Ex: c= a*b + d/e; // é o mesmo que // c = (a*b) + (d/e); Tabela de Precedência MAIOR () [] -> ! ~ (unário) (cast) *(unário) &(unário) sizeof * / % + - << >> <<= >>= == != & ^ | && || ? = += -= *= /= precedência menor

18 Palavras Reservadas do ANSI C:
Toda linguagem de programação possui palavras usadas para fins diversos: Controle de repetição, desvio condicional e incondicional, tipos e seus modificadores, etc. Ao longo do curso, veremos como funcionam... Palavras Reservadas do ANSI C: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while


Carregar ppt "Estrutura, Pesquisa e Ordenação de Dados"

Apresentações semelhantes


Anúncios Google