Por que alunos de engenharia são obrigados a fazer AEDS2? Algoritmos e Estruturas de Dados II
|
|
- Cíntia Alvarenga Sanches
- 6 Há anos
- Visualizações:
Transcrição
1 Por que alunos de engenharia são obrigados a fazer AEDS2? Algoritmos e Estruturas de Gisele L. Pappa, Clodoveu Davis e Raquel (glpappa@dcc.ufmg.br) Por que alunos de computação são obrigados a fazer AEDS2? AEDS2: e a diversão começa! Como criar seu próprio Facebook? Como representar seu perfil, ou seja, como armazenar as Informações pessoais? Como armazenar sua lista de amigos? Como armazenar 1 bilhão de usuários? Como buscar um novo amigo? Como sugerir novos amigos? Como ordenar suas fotos em ordem cronológica? 1
2 Ementa Tipos Abstratos de Dados (TADs) Análise de Algoritmos O(n), O(n log n), )(n!), Estruturas de dados listas, filas, pilhas e árvores Métodos de ordenação quick, heap, merge, select, etc Métodos de pesquisa Parte 2 Prova 2 06/10 TP2 hash, árvores binárias, árvores digitais Parte 1 Prova 1 13/09 TP1 Parte 3 Prova 3 17/11 TP3 Por que esse auditório vai começar assim. E terminar assim???? Avaliação 3 provas (total 60 pontos) 3 trabalhos práticos power (total 35 pontos) Implementação Documentação Teste 1 trabalho prático menos power (3 pontos) Exercícios (total 2 pontos) Moddle Todas informações relacionadas ao curso, incluindo notas de aulas, estarão disponíveis no Moodle Sistema de submissão de trabalhos práticos Prático Detalhes Linguagem: C Software Recomendado: CodeBlocks Instruções de instalação no Learnloop Sistema operacional recomendado: Linux Alta carga extra classe 2
3 Tópicos Programação em C recomendações e boas práticas Clodoveu Davis Gisele L. Pappa Indentação Comentários Modularização Compilação e Debug Entrada e saída Vetores e Passagem de parâmetros Structs Boas Práticas Com um pequeno esforço extra, programas escritos em C podem se tornar mais legíveis e mais facilmente debugáveis No caso de disciplinas de programação, isso ainda ajuda no entendimento das idéias e na correção de trabalhos Indentação É usual empregar TABS para indicar blocos de programação Em geral, 1 tab equivale a 8 espaços, MAS NÃO USAR ESPAÇOS para alinhar Há vários estilos Quando o bloco é longo, é usual colocar um pequeno comentário após o fechamento indicando o que está sendo fechado Indentação K&R: Kernighan & Ritchie Indentação 1TBS: One True Brace Style 3
4 Indentação Comentários Allman Importantes para compreensão do código Mais importantes em código mais complexo Úteis para explicar o conteúdo de variáveis, mas não substituem um bom critério de atribuição de nomes Não exagerar! Comentários No início de cada módulo de código (arquivos.c,.h) Uma linha em cada função, explicando o que ela faz Não é necessário explicar COMO ela faz, o código deve ser claro o bastante para permitir esse entendimento em uma função razoavelmente pequena Se necessário, considerar a quebra em outras funções Comentário na linha da declaração, se necessário, para esclarecer o significado/o uso de uma variável Comentário na linha do fecha-chave, para ajudar a entender blocos e loops Comentários No início de um bloco/arquivo fonte Em função (simples) Comentários Comentários Em funções (arquivo.h) 4
5 Comentários Comentários Em variáveis Em structs No fim de um bloco de programa No código Modularização Modularização Planejar a quebra de um programa em módulos Um módulo não significa necessariamente um arquivo fonte; muitas vezes, é um par de arquivos.c /.h Existe sempre um arquivo fonte para o programa principal (main), e outros para funções adicionais ou componentes Montar módulos especificamente para tipos abstratos de dados [aula: TAD] Procurar dar independência aos módulos, para que possam eventualmente ser reaproveitados Modularização Modularização 5
6 Modularização Modularização transformação em biblioteca timer.lib Copiar timer.h para o diretório includes do compilador Atenção: incluir timer.h e timer.c no projeto Copiar timer.lib para o diretório lib do compilador Constantes e #define Não usar números mágicos no código Algumas constantes usadas no programa podem ter que ser modificadas, e é mais fácil fazer isso em um lugar só Sempre que for tornar o código mais legível, usar #define para dar um nome à constante Em geral, nomes de constantes são em maiúsculas #define PI #define MAX_VETOR 1000 Nomes de variáveis Algumas variáveis merecem nomes significativos: MAX_VETOR, numclientes, listaalunos Variáveis auxiliares em geral recebem nomes curtos: i, j, aux, x Cuidado para não fazer confusão Não abusar: i, ii, iii, aux1, aux2, aux3 Variáveis inteiras: i, j, k Variáveis reais: x, y, z : s1, s2 Booleanas: nome do teste (existe, valido, ocorre) Nomes de variáveis Estilos variados: Só minúsculas (i, num, conta) Só maiúsculas (constantes: PI, E, MAX) CamelCase (nummat, anguloentrada) Indicação do tipo no início do nome (inum, ivalor, fraio, faltura, dvolume) Há quem prefira inserir comentários e usar nomes de variáveis em inglês, por ficar mais próximo da linguagem de programação Organização e limpeza Procurar dar um aspecto organizado ao código, ajuda na compreensão Entender o código fonte como um instrumento de comunicação Comentar excessivamente código mal escrito não ajuda Dar nomes adequados a variáveis ajuda bastante 6
7 Parênteses e espaçamento Usar espaços antes de parênteses, depois de vírgulas, ao redor de operadores binários if (x == 10) y = 5; for (i = 0; i < 10; i++) x += a; a = f(b); Cuidado com notações compactas demais, e com comandos embutidos em outros if (x++ == b) y = 5; Correção e robustez Testes: prever todo tipo de problema e variações na entrada de dados Limites de vetores Valores inteiros e de ponto flutuante Contadores e incremento Testes de fim de arquivo Teste de disponibilidade de memória para alocação Compilação LER as mensagens de erro e ENTENDER a origem do problema Warnings: indicam problemas potenciais, devem ser resolvidos Muitas vezes a mensagem de erro não reflete o que está ocorrendo Observar a linha em que o erro foi indicado, a linha anterior, o bloco de código em que ocorreu, e o corpo da função em que ocorreu Debugger Ajuda a acompanhar os valores das variáveis ao longo da execução Observar o valor de variáveis (watches) Posicionar pontos de interrupção (breakpoints) Executar passo a passo Vide Documentação do CodeBlocks I/O em C Formalmente, rotinas de entrada e saída não fazem parte da linguagem, e sim de bibliotecas que acompanham os compiladores Felizmente, são padronizadas Exige-se a linha #include <stdio.h> para usá-las ENTRADA E SAÍDA 7
8 I/O em C printf(string [, valor, valor, ]); O string contém uma máscara (template) com lacunas reservadas para os valores que serão impressos Pode não existir lacuna printf( O valor de x eh %d, x); printf( Area: %f\n, PI*d*d/4); printf( Nome: %s, nomealuno); printf Especificadores de formato %c (char) %s (string) %d (int) %ld (long int) %f (float) %lf (double) %e (float notação científica) %g (e ou f, ou seja, notação científica se necessário) printf Especificação completa Caracteres de escape Acrescentados à máscara para provocar reposicionamento do cursor \n: nova linha \t: tabulação \r: backspace \\: caractere da barra invertida Entrada Entrada Com máscara: scanf(string, *var [, *var, ]); Mesmos especificadores de formato do printf A função precisa receber o endereço da variável à qual o valor digitado será atribuído scanf( %d, &num) scanf( %c%d, &letra, &num); scanf( %c, &ch); scanf( %s, s); // string scanf( %13c, s); //le 13 caracteres scanf( %c, &ch); //pula brancos 8
9 Entrada Observe que scanfinterrompe a leitura de um string quando encontra um branco, se usado com %s Uso de %[]: %[aeiou]: apenas as vogais são permitidas %[^aeiou]: as vogais não são permitidas %[^\n]: interrompe quando recebe um [enter] %60[^\n]: admite até 60 caracteres, e para quando encontra um enter Entrada Linhas inteiras: gets(string) Lê uma linha inteira, excluindo \n, e coloca \0 no final Com limite de tamanho: fgets(string, tammax, stdin) Entrada Caracteres individuais: getchar() O caractere digitado é o valor de retorno da função I/O para arquivos A entrada do teclado e saída para o monitor são realizadas internamente considerando três dispositivos virtuais: stdin, stdout e stderr Como são dispositivos padrão, referências a stdin e stdout eles são omitidas dos comandos I/O para arquivos é muito semelhante à operação com stdin e stdout, mas um handle ao arquivo tem que ser fornecido I/O para arquivos O handle é obtido no momento da abertura do arquivo FILE *infile; // variável handle FILE *outfile; //abre o arquivo para leitura (r) ou gravacao (w) infile = fopen( arquivo.txt, r ); outfile = fopen( saida.txt, w ); fscanf(infile, %d, &num); fprintf(outfile, O valor lido eh %8.2d\n, num); fclose(infile); fclose(outfile); I/O para arquivos fopen: modos de abertura 9
10 I/O para arquivos Se o handle retornar nulo do comando fopen, então ocorreu erro (arquivo não encontrado, arquivo travado contra gravação, permissão negada pelo sistema operacional, etc.) Testar: if ((infile = fopen( arquivo.txt, r )) == NULL) printf( Nao consegui abrir.\n ); exit(1); I/O para arquivos gets() fgets(arq, tammax, string); getchar() fgetc(arq); putc(ch) fputc(arq, ch) printf fprintf(arq, string, valor) scanf fscanf(arq, string, endereço) feof(arq) Retorna booleano indicando se o fim do arquivo foi atingido Neste caso, o fgetc retorna a constante EOF, definida em stdio como 0xFFFF Exemplo I/O para arquivos Exercício (POSCOMP 2009) #include<stdio.h> #include<string.h> int main (void) O que será impresso quando o programa for executado? char texto[]= "foi muito facil"; int i; for (i = 0; i < strlen(texto); i++) if (texto[i] == ' ') break; i++; for ( ; i < strlen(texto); i++) printf("%c", texto[i]); return 0; I/O para arquivos Exemplo (variação) VETORES E STRINGS 10
11 Alocação estática de memória Ao se declarar uma variável qualquer, o compilador deixa reservado um espaço suficiente na memória para armazená-la int a; // 2 bytes long b; // 4 bytes float x; // 4 bytes double y; // 8 bytes char c; // 1 byte Alocação estática de memória Ao fazer a alocação estática, apenas o espaço necessário na memória é reservado O conteúdo de cada posição não é alterado, e portanto uma variável apenas declarada pode conter qualquer coisa Inicializar as variáveis, atribuindo valores, antes do uso Inclusive vetores, matrizes e strings Vetores Quando se declara um vetor, o valor entre chaves indica quantas vezes o espaço de memória necessário para o tipo básico será alocado int v[100]; // 100 * sizeof(int) = 200 bytes long vl[200]; // 200 * sizeof(long) = 800 bytes double z[1000]; // 1000 * sizeof(double) = 8000 bytes Vetores A referência a uma posição de um vetor indica o cálculo de uma posição de memória a partir do início do vetor float x[1000]; // x[20] está na posição x + 20*sizeof(float) Na verdade, o símbolo x é um apontador para o início da região de memória reservada para o vetor Vetores C NÃO AVISA NEM PRODUZ ERRO QUANDO O LIMITE DE UM VETOR OU MATRIZ FOR EXCEDIDO y = x[2000]; // não dá erro, mas vai acessar // uma parte inesperada da memória Erro mais comum (runtime): segmentation fault É responsabilidade do programador verificar os limites, e garantir que não sejam excedidos Matrizes = Vetores de mais de uma dimensão Na verdade, a alocação na memória é linear Muda apenas o cálculo da posição de memória do elemento referenciado int M[5][5]; M[0][0] = 15; M[2][3] = 2; // posicao: M + (2*5 + 3)*sizeof(int) 11
12 Um string é um vetor do tipo char Para manipulação do string, atribuindo e recuperando valores, e realizando operações sobre ele, é importante entender essa característica Quando o conteúdo de um string não ocupa todo o espaço disponível, usa-se um caractere \0 (ou NULL, código ASCII 0) como delimitador constantes aparecem no código entre aspas printf( %s, Bom dia! ); O delimitador \0 está incluído: Não é possível fazer atribuições diretas para strings Usar a função strcpy ou a função strncpy Na inicialização, pode-se usar o mesmo recurso disponível para vetores char nome[] = A, n, a, \0 ; Ou char nome[] = Ana ; Como o nome do string representa o endereço onde começa o string, é possível manipulá-lo diretamente Cuidado! Exemplo char nome[] = Alexandre ; printf( %s\n, nome + 3); // imprime xandre Funções strlen(st): retorna o comprimento do string (com exceção do \0) strcat(st1, st2): concatena o s2 no s1 (s1 tem que ter espaço) strcmp(s1, s2): retorna <0 se s1 é menor que s2, ==0 se s1 é igual a s2, e >0 se s1 é maior que s2 (ordem alfabética) A comparação entre strings também tem que ser feita caractere a caractere, portanto não se pode usar s1==s2; isso só compara os endereços 12
13 strncat, strncmp, strncpy: idem aos anteriores, mas especifica o número de caracteres que serão considerados strtok: extrai tokens, substrings delimitados Exemplo long int num; char linha[256]; while (!feof(infile)) fgets(linha, 256, infile); p1 = strtok(linha, " \n"); //delim: branco ou fim de linha while ((p1!= NULL) && (!feof(infile))) num++; fprintf(outfile, "%s\n", p1); p1 = strtok(null, " \n"); printf("o arquivo de entrada tinha %ld palavras.\n", num); fclose(infile); Vetores de strings podem ser criados Exemplo char DiaSemana[7][14] = Domingo, Segunda, Terça, Quarta, Quinta, Sexta, Sabado ; printf( %s\n, DiaSemana[3]); Alocação Estática x Dinâmica Linguagens de programação como Pascal, C e C++ permitem dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço de memória para as variáveis é reservado no início da execução, não podendo ser alterado depois int a; int b[20]; Na alocação dinâmica, o espaço de memória para as variáveis pode ser alocado dinamicamente durante a execução do programa E Java? Em java não existe manipulação explícita de apontadores. Todo objeto é criado dinamicamente (new) e as variáveis apontam para os objetos Variáveis dos tipos básicos são alocadas estaticamente (não é necesário o new) A desalocação de memória é feita automaticamente (garbage collection) Alocação Dinâmica A memória alocada dinamicamente é acessada através de Apontadores (pointers) que na verdade são variáveis que armazenam o endereço de uma área de memória A memória alocada dinamicamente faz parte de uma área de memória chamada heap Basicamente, o programa aloca e desaloca porções de memória do heap durante a execução 13
14 Alocação Dinâmica Apontadores Notação em C 0x016 a 0x020 b Memória Estática 10 0x234 a é um int b é um apontador para um int 10 Heap 0x214 0x218 0x222 0x226 0x230 0x234 0x238 0x242 0x246 definição de p como um apontador para uma variável do tipo T T *p; Alocação de memória para uma variável apontada por p p = (T*) malloc(sizeof(t)); Desalocação de memória free(p); Conteudo da variável apontada por P *p; Valor nulo para um apontador null; Endereço de uma variável a (endereço do primeiro byte) &a; Endereço da Variável Endereço do primeiro byte. Exemplo int i; char c; int v[5]; struct int x,y; p; printf("%d\n", &i); printf("%d\n", &c); printf("%d\n", &v); printf("%d\n", &p); Endereços Impressos: P 8 bytes P 8 bytes Alocação Dinâmica int *a, b; b = 10; a = (int *) malloc(sizeof(int)); *a = 20; a = &b; *a = 30; // qual o valor de b? Memória Estática Heap Alocação Dinâmica Erros Comuns int *a, b; b = 10; a = (int *) malloc(sizeof(int)); *a = 20; a = &b; *a = 30; // qual o valor de b? Memória Estática b a X Memória não foi desalocada. O espaço continua ocupado 20 Heap Esquecer de alocar memória e tentar acessar o conteúdo da variável Copiar o valor do apontador ao invés do valor da variável apontada Esquecer de desalocar memória Ela é desalocada ao fim do programa ou procedimento função onde a variável está declarada, mas pode ser um problema em loops Tentar acessar o conteúdo da variável depois Algoritmos e Estrutura Dados de II desalocá-la 14
15 Alocação Dinâmica de Vetores Normalmente, a alocação dinâmica é utilizada para criar vetores em tempo de execução Exemplo: int *p; p = (int *)malloc(10*sizeof(int)); Aloca um vetor de inteiros com x posições. A manipulação pode ser feita normalmente: p[i] = O apontador pguarda o endereço (aponta) da primeira posição do vetor. Vetores e Apontadores Na verdade, em C todo vetor (mesmo alocados de forma estática) pode ser visto como um apontador. Pode se trabalhar usando ambas notações: *p é equivalente a p[0] p é equivalente a &p[0] *(p + i) é equivalente a p[i] considerando v um vetor alocado estaticamente, e p dinamicamente, pode-se fazer p = v, mas não v = p (v é, de certa forma, um ponteiro constante ) p Alocação Dinâmica de Matrizes Declaração de Matriz Dinâmica: int** result_matrix; int** read_matrix(int size_x, int size_y) int** matrix; int i; matrix = calloc(size_x, 1+sizeof(int*)); // alloc one extra ptr for(i = 0;i<size_x;i++) matrix[i] = calloc(size_y, sizeof(int)); matrix[size_x] = NULL; // set the extra ptr to NULL for(int i = 0;i<size_x;i++) for(int j = 0;j<size_y;j++) matrix[i][j] = i*10+j; return matrix; void free_matrix(int **matrix, int rows) int i; for(i=0; i<rows; i++) free(matrix[i]); free(matrix); Matrizes Realloc void *realloc(void *ptr, size_t size) int main() char buf[80], *message; puts("enter a line of text."); gets(buf); /* Allocate the initial block and copy the string to it. */ message = realloc(null, strlen(buf)+1); strcpy(message, buf); puts(message); puts("enter another line of text."); gets(buf); // Increase the allocation, and concatenate the string to it. message = realloc(message,(strlen(message) + strlen(buf)+1)); strcat(message, buf); puts(message); return 0; Exercício: O que vai ser impresso? double a; double *p, *q; ? a = 3.14; printf("%f\n", a); p = &a; *p = 2.718; printf("%f\n", a); a = 5; printf("%f\n", *p); p = NULL; p = (double *)malloc(sizeof(double)); *p = 20; q = p; printf("%f\n", *p); printf("%f\n", a); free(p); printf("%f\n", *q); int a, b, i, v[10]; int *p; b = 10; p = &b; a = *p + 100; printf("%d\n", a); a = *&b; printf("%d\n", a); for(i=0; i<10; i++) v[i] = i; p = v; for(i=0; i<5; i++) *(p+i) = 10*i; p = p + 5; *p = -5; for(i=0; i<10; i++) printf( %d,v[i]);
16 Apontadores para Tipos Estruturados Apontadores podem ser utilizados com tipos estruturados. Isso é muito comum na criação de estruturas encadeadas (listas, filas, etc) typedef struct int idade; double salario; TRegistro; TRegistro *a; a = (TRegistro *) malloc(sizeof(tregistro); a->idade = 30; // equivalente: (*a).idade a->salario = 80; Passagem de Parâmetros Em pascal e C++, parâmetros para função podem ser passados por valor ou por referência Por valor:o parâmetro formal (recebido no procedimento) é uma cópia do parâmetro real (passado na chamada) Por referência: o parâmetro formal (recebido no procedimento) é uma referência para o parâmetro real (passado na chamada) As modificações efetuadas acontecem no parâmetro real Em C só existe passagem por valor, logo deve-se implementar a passagem por referência utilizando-se apontadores Passagem de Parâmetros (C) void SomaUm(int x, int *y) x = x + 1; *y = (*y) + 1; printf("funcao SomaUm: %d %d\n", x, *y); 1 1 int main() int a=0, b=0; SomaUm(a, &b); printf("programa principal: %d %d\n", a, b); 0 1 Passagem de Parâmetros E para alocar memória dentro de um procedimento? Em pascal, basta passar a variável (apontador) como referência. Em C também, mas como não há passagem por referência as coisas são um pouco mais complicadas void aloca(int *x, int n) x=(int *)malloc(n*sizeof(int)); x[0] = 20; int main() Error! Access Violation! int *a; aloca(a, 10); a[1] = 40; void aloca(int **x, int n) *x=(int *)malloc(n*sizeof(int)); *x[0] = 20; int main() OK int *a; aloca(&a, 10); a[1] = 40; Exercícios 1. Faça um programa que leia um valor n,crie dinamicamente um vetor de n elementos e passe esse vetor para uma função que vai ler os elementos desse vetor. 2. Declare um TipoRegistro, com campos a inteiro e b que é um apontador para char. No seu programa crie dinamicamente uma váriavel do TipoRegistro e atribua os valores 10 e x aos seus campos. Respostas (1) void LeVetor(int *a, int n) int i; for(i=0; i<n; i++) scanf("%d",&a[i]); int main(int argc, char *argv[]) int *v, n, i; scanf("%d",&n); v = (int *) malloc(n*sizeof(int)); LeVetor(v,n); for(i=0; i<n; i++) printf("%d\n",v[i]); Apesar do conteúdo ser modificado Não é necessário passar por referência pois todo vetor já é um apontador 16
17 typedef struct int a; char *b; TRegistro; Respostas (2) int main(int argc, char *argv[]) TRegistro *reg; reg = (TRegistro *) malloc(sizeof(tregistro)); reg->a = 10; reg->b = (char *) malloc(sizeof(char)); *(reg->b) = 'x'; printf("%d %c",reg->a, *(reg->b)); É necessário alocar espaço para o registro e para o campo b. *(reg->b) representa o conteúdo da variável apontada por reg->b Passagem de parâmetros para o programa Chamada: C:\> prog.exe arg1 arg2 arg3 Declaração completa da função main int main(int argc, char *argv[]) argc: número de parâmetros passados na linha de comando argv: um vetor de argc strings argv[0]: nome do programa argv[1]: primeiro parâmetro argv[argc 1]: último parâmetro argv[argc] é sempre NULL Referências Mizrahi, V. V. Treinamento em Linguagem C. Pearson, Kernighan B.W., Ritchie, D.M. C A linguagem de programação (padrão ANSI). Campus, Vide Moodle para links (inclusive cursos online), exemplos e exercícios 17
Alocação Dinâmica de Memória
Alocação Dinâmica de Memória Luiz Chaimowicz, Raquel O. Prates, Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados II DCC UFMG Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 02: Alocação Dinâmica de Memória Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Leia maisSumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?
Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros
Leia maisEstruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Leia maisLinguagem C: Introdução
Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais
Leia maisIntrodução a Programação de Jogos
Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição
Leia maisExercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal
Exercícios 1) Crie uma função que recebe os coeficientes de uma função do 2o. grau e retorna as raízes sem usar vetor. 2) Faça um programa que acha o maior e o menor inteiro dentro de um vetor de 10 inteiros,
Leia maisMódulo 5 Vetores e Alocação Dinâmica
Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
Leia mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisAlocação Dinâmica em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 04 Alocação Dinâmica Edirlei Soares de Lima Vetores - Declaração e Inicialização Declaração de um vetor: int meu_vetor[10]; Reserva um espaço de memória
Leia maisINF1007: Programação 2. 2 Alocação Dinâmica. 17/02/2014 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 2 Alocação Dinâmica 17/02/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Alocação dinâmica Vetores locais e funções 17/02/2014 (c) Dept. Informática - PUC-Rio 2 Alocação Dinâmica
Leia maisO que é um apontador em C (type pointer in C)?
O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora
Leia maisLinguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Leia maisEstruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011
Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia maisEstruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores 14/03/2011 e 16/03/2011 Uso da memória Existem 3 maneiras de reservar o espaço da memória: Variáveis globais (estáticas) Espaço existe enquanto
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação
Leia maisMétodos Computacionais
Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento
Leia maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisTipos Abstratos de Dados. Estrutura de Dados
Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:
Leia maisALGORITMOS E ESTRUTURAS DE DADOS CES-11
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA Revisão CES-11 Tipos escalares primitivos Tipos constituídos
Leia maisIntrodução à Computação
Introdução à Computação Linguagem C Professor: André de Carvalho Aula de hoje Introdução Tipos compostos Tipo enumeração Conclusão Tipos compostos A Linguagem C permite criar tipos de dados definíveis
Leia maisHello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento
Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double
Leia maisA Linguagem C. A forma de um programa em C
A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de
Leia maisAlocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)
Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática
Leia maisLinguagem C Ficheiros Compilação Separada
Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir
Leia maisAmbiente de desenvolvimento
Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa
Leia maisPROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S
PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é
Leia maisCAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:
CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta
Leia maisVetores e Matrizes. Conceito. Conceito. Conceito. Conceito. Conceito. Variáveis Compostas Homogêneas. Matriz
Variáveis Compostas Homogêneas São conhecidas na linguagem C como matrizes. Vetores e es É um conjunto de variáveis do mesmo tipo, acessíveis com um único nome e armazenadas de forma contínua na memória.
Leia maisponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
Leia maisIntrodução à Linguagem C
Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br
Leia maiscadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo
cadeia de caracteres (string) INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br cadeia de caracteres (string) tópicos caracteres cadeia de caracteres referência Capítulo
Leia maisA linguagem C permite dois tipos de alocação de memória: Alocação estática e alocação dinâmica.
Alocação de Memória Todo programa precisa utilizar memória para ser executado. Quando um programa inicia sua execução, ele começa a solicitar memória ao sistema operacional, ou seja, faz a alocação de
Leia mais1 Exercícios com ponteiros
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros
Leia maisEstrutura de Programas e Tipos de Dados Simples
SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Estrutura de Programas e Tipos de Dados Simples Prof. Vanderlei Bonato: vbonato@icmc.usp.br Prof. Claudio Fabiano Motta Toledo: claudio@icmc.usp.br
Leia maisAnhanguera Educacional S.A. Centro Universitário Ibero-Americano
O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações
Leia maisUniversidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton
Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton nilton@comp.uems.br Introdução A linguagem C foi inventada por Dennis Ritchie e
Leia maisMatrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná
em C Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Uma matriz é uma coleção de variáveis do mesmo tipo que é referenciada por um nome comum; Em C todas as matrizes consistem
Leia maisComandos de entrada. e saída. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada. Comandos de entrada.
e saída Biblioteca stdio.h Comandos Função scanf() Função gets() Função getchar() Material cedido pelo prof. Daniel Callegari scanf() Rotina de entrada que lê todos os tipos de dados. Protótipo: int scanf(const
Leia maisApêndice B. Cadeias de Caracteres (Strings)
Apêndice B. Cadeias de Caracteres (Strings) Até agora, quando desejávamos indicar o número de elementos existentes em um vetor qualquer, utilizávamos uma variável inteira, digamos tam, para armazenar tal
Leia maisLinguagem C Controle do Fluxo de Execução. Lógica de Programação
Linguagem C Controle do Fluxo de Execução Lógica de Programação Caro(a) aluno(a), Aqui começaremos a escrever os nossos primeiros programas em uma Linguagem de Programação. Divirta-se!!! Estrutura Seqüencial
Leia maisIntrodução à Linguagem C
Introdução à Linguagem C Eduardo Simões de Albuquerque Instituto de Informática UFG 13/03/2006 1 História Inventada e desenvolvida por Dennis Ritchie em um DEC- PDP 11 Originária de: BCPL desenvolvida
Leia maisC++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador.
C++ - Matrizes É um conjunto de variáveis, do mesmo tipo, referenciadas por um único nome, onde cada variável é diferenciada por meio de um número entre colchetes chamado índice. Declaração : tipo nome
Leia maisComputação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010 1 Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos
Leia maisMétodos Computacionais. Funções, Escopo de Variáveis e Ponteiros
Métodos Computacionais Funções, Escopo de Variáveis e Ponteiros Tópicos da Aula Hoje vamos detalhar funções em C Escrevendo funções Comando return Passagem de argumentos por valor Execução de uma função
Leia maisCapítulo 2 Operadores. A função scanf()
Capítulo 2 Operadores A função scanf() A função scanf() é outra das funções de E/S implementadas em todos os compiladores e nos permite ler dados formatados da entrada padrão (teclado). Sintaxe: scanf(
Leia maisFunções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná
em C Linguagem de Programação Estruturada I Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Sumário Funções: Conceitos; Forma Geral das funções; Regras de Escopo; Argumentos
Leia maisLinguagem C: Ponteiros - Alocação Dinâmica
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Ponteiros Alocação Dinâmica de Memória 2 3 4 Organização Ponteiros Alocação
Leia maisIntrodução à Programação em C (II)
Introdução à Programação em C (II) Resumo Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Cópia de Ficheiros Contagem de Caracteres Contagem de Linhas Contagem
Leia maisOutline. 33. Manipulação de arquivos DIM
Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de
Leia maisIntrodução à Linguagem C Variáveis e Expressões
INF1005: Programação 1 Introdução à Linguagem C Variáveis e Expressões 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Programando em C Funções Variáveis Define Operadores e Expressões Entrada e Saída
Leia maisEstruturas de Dados Aula 6: Cadeias de 28/03/2010
Estruturas de Dados Aula 6: Cadeias de Caracteres 28/03/2010 Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis
Leia maisVetores. e o programa deverá ler os valores separadamente:
Vetores Vetor é um tipo de dado usado para representar uma certa quantidade de variáveis de valores homogêneos (do mesmo tipo). Imagine o seguinte problema: calcular a média das notas da prova de 5 alunos.
Leia maisVariáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Leia maisIntrodução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes
Introdução à Programação Introdução a Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Introdução Variáveis Tipos de dados Operadores e Expressões: Operadores
Leia maisTrabalho Linguagem e Programação de Compiladores
Trabalho Linguagem e Programação de Compiladores Responda as questões. Os exercícios deverão ser desenvolvidos utilizando as estruturas apresentadas em aula e adequadas para cada problema. Forma de entrega:
Leia maisUniversidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza
Universidade Federal do Espírito Santo Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza Variáveis Tipos de Dados Básicos Formação dos identificadores o nome deve começar com uma letra
Leia maisStrings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.
Introdução Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos. 1 definições Uma string é uma sequência, um conjunto, ou uma cadeia de caracteres.
Leia mais19 Vetores, Ponteiros e Funções
19 Vetores, Ponteiros e Funções Ronaldo F. Hashimoto e Carlos H. Morimoto Oobjetivodestaaulaérelacionarotipovetor com ponteiros eassimentendercomoutilizarvetorescomo parâmetros de funções. Ao final dessa
Leia maisMaterial sobre Funções AEDS 1
Material sobre Funções AEDS 1 1 Funções - revisão Funções definem operações que são usadas frequentemente Funções, na matemática, requerem parâmetros de entrada e definem um valor de saída 2 Funções -
Leia maisLinguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa
Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES Linguagem C - Introdução Linguagens de Máquina Representação numérica Difícil utilização e compreensão Específica para cada máquina Linguagens Simbólicas(Assembly)
Leia mais11 - Estrutura de um programa em C
11 - Estrutura de um programa em C directivas para o compilador { main ( ) declarações instruções } -É possível utilizar comentários, exemplo: /* Comentário */ que não são traduzidos pelo compilador, pois
Leia maisProfessora Jeane Melo
Professora Jeane Melo Roteiro Lista Encadeada Alocação: Estática x Dinâmica O que são Ponteiros? Ponteiros Variáveis que Armazenam Endereços de Memória Mas, toda variável não é armazenada na memória? Ponteiros
Leia maisLinguagem e Técnicas de Programação
Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,
Leia maisVariáveis, Tipos de Dados e Operadores
! Variáveis, Tipos de Dados e Operadores Engenharias Informática Aplicada 2.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) VARIÁVEL VARIÁVEL É um local lógico, ligado a um endereço físico da memória
Leia maisAlgoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo
Algoritmos e Estruturas de Dados I IEC012 Linguagem C - Guia de bolso - Prof. César Melo Histórico A linguagem C é uma linguagem de programação inventada na década de 1970 por Dennis Ritchie Brian Kennigaham.
Leia maisDisciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Aula Passada Prática com declaração e inicialização de variáveis Capacidade de representação (estouro de representação) Tamanho ocupado pela variável na memória (comando
Leia maisAlgoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon
Algoritmos e Programação Linguagem C Procedimentos e Funções Eliane Pozzebon Procedimentos e Funções Procedimentos são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento
Leia maisComputação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Leia maisTipos Abstratos de Dados
Tipos Abstratos de Dados Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Definição de Tipos Abstratos de Dados Exemplos de TADs Implementação de TADs Implementação em C Exemplo
Leia maisINF 1620 P3-29/06/04 Questão 1 Nome:
INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica
Leia maisLinguagem C. Armazenamento de Dados em Arquivos - Continuação
Linguagem C Armazenamento de Dados em Arquivos - Continuação Arquivos Binários Comandos para gravação e leitura de arquivos (revisão): FILE *arquivo; arquivo = fopen( nome, modo ); fwrite (&variavel, sizeof
Leia maisLINGUAGEM C: ALOCAÇÃO DINÂMICA
LINGUAGEM C: ALOCAÇÃO DINÂMICA Prof. André Backes DEFINIÇÃO Sempre que escrevemos um programa, é preciso reservar espaço para as informações que serão processadas. Para isso utilizamos as variáveis Uma
Leia maisAula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU
Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito
Leia maisTipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação
Tipos de Dados, Variáveis e Entrada e Saída em C DCC 120 Laboratório de Programação Variáveis Uma variável representa um espaço na memória do computador para armazenar um determinado tipo de dado. Em C,
Leia maisClasses o Objetos. Classes, objetos, métodos e variáveis de instância
Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou
Leia maisEstruturas de Dados I
Estruturas de Dados I Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2075 Aula 6: Listas Encadeadas e Alocação Dinâmica Listas Encadeadas e Alocação Dinâmica Alocação Seqüencial versus
Leia maisComputação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Introdução O objetivo desta aula prática é exercitar comandos de entrada e saída simples
Leia maisINTRODUÇÃO A LINGUAGEM C
INTRODUÇÃO A LINGUAGEM C Aula 01 Programação em Microinformática Prof. Allbert Velleniche de Aquino Almeida E-mail: professor@allbert.com.br Site: http://www.allbert.com.br Histórico O C nasceu na década
Leia maisGilberto A. S. Segundo. 24 de agosto de 2011
Exercícios - Alocação Dinâmica Gilberto A. S. Segundo Programação Aplicada de Computadores Engenharia Elétrica Universidade Federal do Espírito Santo - UFES 24 de agosto de 2011 1 / 23 Grupo de e-mail
Leia mais4. Estruturas Fundamentais de Programação em C
4. Estruturas Fundamentais de Programação em C 4.1. Imprimindo Mensagens e Valores no Monitor de Vídeo A biblioteca de entrada e saída (stdio.h) possui a função printf que imprime mensagens e valores diretamente
Leia maisDepuração e Teste de programas C C Depuração e teste de programas C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Depuração e Teste de programas C C Depuração e teste de programas C Profa Rosana Braga (adaptado de material do prof.
Leia maisAlgoritmos RESUMO - LINGUAGEM C
Algoritmos RESUMO - LINGUAGEM C 1 Sintaxe da linguagem C Componentes reconhecidos pela linguagem C (sintaxe da linguagem): tipos propriedades dos dados; declarações partes do programa, podendo dar significado
Leia maisMétodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de
Leia maisMétodos Computacionais. Strings (Vetor de Caracteres)
Métodos Computacionais Strings (Vetor de Caracteres) Em C, o tipo char : Caracteres é usado para representar caracteres pode armazenar valores inteiros (em 1 byte), representando assim, 256 valores distintos
Leia maisProgramação Básica. Estrutura de um algoritmo
Programação Básica Estrutura de um algoritmo Código-fonte Como vimos na aula anterior um algoritmo pode ser representado usando um fluxograma Um algoritmo pode também ser representado usando texto Esse
Leia maisLição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Leia maisAlgoritmos I Aula 13 Linguagem de Programação Java
Algoritmos I Aula 13 Linguagem de Programação Java Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação IDE Eclipse IDE (Integrated development environment) Criar um projeto
Leia maisProgramação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO
Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO Introdução As informações que os programas utilizam são perdidas quando eles são finalizados ou quando o computador é desligado.
Leia maisEstruturas de Repetição
Estruturas de Repetição Introdução As estruturas de repetição, permitem executar mais de uma vez um mesmo trecho de código. Trata-se de uma forma de executar blocos de comandos somente sob determinadas
Leia maisFundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes
Fundamentos de Programação Linguagem C++ aula II - Variáveis e constantes Prof.: Bruno Gomes 1 Variáveis Representa uma porção da memória que pode ser utilizada pelo programa para armazenar informações
Leia maisAlgoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:
Algoritmos Algoritmos Leandro Tonietto Unisinos ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto/inf/pg1/algoritmosi_java.pdf Mar-2008 Possuem sintaxe flexível e são mais úteis para descrição
Leia maisINF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1
INF1007: Programação 2 0 Revisão 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 Tópicos Principais Variáveis e Constantes Operadores e Expressões Entrada e Saída Tomada de Decisão Construção com laços
Leia maisLinguagens de Programação I
Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler
Leia maisCapítulo 6: Arquivos
Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de
Leia maisINF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores
Leia mais5. Vetores e alocação dinâmica
5. Vetores e alocação dinâmica W. Celes e J. L. Rangel 5.1. Vetores A forma mais simples de estruturarmos um conjunto de dados é por meio de vetores. Como a maioria das linguagens de programação, C permite
Leia maisArquivos em C Parte 2
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Arquivos em C Parte 2 Profa Rosana Braga Material preparado pela profa Silvana Maria Affonso de Lara 1º semestre de
Leia mais