Laboratório de Programação - Exercício 22

Tamanho: px
Começar a partir da página:

Download "Laboratório de Programação - Exercício 22"

Transcrição

1 Laboratório de Programação - Exercício 22 A Pilha, Escopo e Globais João Araujo Ribeiro jaraujo@uerj.br Universidade do Estado do Rio de Janeiro Departamento de Engenharia de Sistemas e Computação João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 1 / 32

2 Resumo 1 Ex22 - A Pilha, Escopo e Globais João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 2 / 32

3 Exercício 22 - A Pilha, Escopo e Globais O conceito de escopo é bem confuso para algumas pessoas quando elas veem pela primeira vez. Originalmente ele vem do uso da pilha do sistema e como é usada para o armazenamento de variáveis temporárias. Neste exercício aprenderemos sobre o escopo e como a estrutura de pilha de dados funciona e veremos como é usado no C moderno. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 3 / 32

4 Arquivos necessários Este exercício necessita de 3 arquivos ex22.h O cabeçalho que define algumas variáveis externas e funções. ex22.c Aqui não será o main normal, mas um arquivo-fonte que dará origem ao arquivo objeto ex22.o que conterá algumas funções e variáveis definidas em ex22.h. ex22 main.c O main real que incluirá os outros dois e demonstrará o que eles contêm assim como outros conceitos de escopo. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 4 / 32

5 ex22.h 1 #ifndef _ex22_h 2 #define _ex22_h 3 4 // faz O_TAMANHO no ex22.c disponível para outros arquivos.c 5 extern int O_TAMANHO; 6 7 // Obtém (get) e inicia (set) o valor da variável interna estática em ex22.c 8 int get_idade(); 9 void set_idade(int idade); // atualiza uma variável estática interna a update_ratio 12 double atualiza_taxa(double taxa); void imprime_tamanho(); #endif João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 5 / 32

6 ex22.c 1 #include <stdio.h> 2 #include "ex22.h" 3 #include "dbg.h" 4 5 int O_TAMANHO = 1000; 6 7 static int A_IDADE = 37; 8 9 int get_idade() 10 { 11 return A_IDADE; 12 } void set_idade(int idade) 15 { 16 A_IDADE = idade; 17 } double atualiza_taxa(double taxa_nova) 21 { 22 static double taxa = 1.0; Continua João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 6 / 32

7 ex22.c 1 2 double taxa_velha = taxa; 3 taxa = taxa_nova; 4 5 return taxa_velha; 6 } 7 8 void imprime_tamanho() 9 { 10 log_info("eu penso que o tamanho é: %d", O_TAMANHO); 11 } João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 7 / 32

8 Novos tipos de armazenamento Este programa introduz novos tipos de armazenamento. extern static (arquivo) static (função) João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 8 / 32

9 extern Isto diz ao compilador: a variável existe, porém em outro arquivo externo. Tipicamente isso significa que um arquivo.c vai usar uma variável que foi definida em outro arquivo.c. Neste caso, estamos dizendo que ex22.c tem uma variável O TAMANHO que será acessada de ex22 main.c. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 9 / 32

10 static (arquivo) Esta palavra-chave faz o inverso de extern. Neste caso a variável é usada somente neste arquivo.c e não deve ficar disponível para outras partes do programa. Fique atento: extern no nível de arquivo é diferente de static em outros lugares. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 10 / 32

11 static (função) Se você declara uma variável em uma função static, então a variável funciona como se fosse definida no arquivo, porém só pode ser acessada desta função. É a maneira de criar um estado constante para uma função, mas na realidade raramente é utilizado em C moderno, pois são difíceis de usar com threads. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 11 / 32

12 Variáveis e funções O TAMANHO Esta é a variável declarada como extern e com a qual trabalharemos em ex22 main.c. get idade e set idade Estas funções pegam a variável estática A IDADE e a expõem a outras partes do programa por meio de funções. Você não pode ter acesso a A IDADE diretamente, mas estas funções podem. atualiza taxa Esta função pega um novo valor para taxa e retorna o antigo. Ela usa uma variável estática no nível de função para conservar o valor atual de taxa. imprime tamanho Imprime o que ex22.c acha que seja o valor atual de O TAMANHO. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 12 / 32

13 ex22 main.c 1 #include "ex22.h" 2 #include "dbg.h" 3 4 const char *MEU_NOME = "Zed A. Shaw"; 5 6 void demo_escopo(int contador) 7 { 8 log_info("contador é: %d", contador); 9 10 if(contador > 10) { 11 int contador = 100; // MAU! BUGS! log_info("contador nesse escopo tem valor %d", contador); 14 } log_info("na saída, contador tem valor: %d", contador); contador = 3000; log_info("contador após atribuiç~ao: %d", contador); 21 } continua... (1 de 3) João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 13 / 32

14 23 int main(int argc, char *argv[]) 24 { 25 // teste os acessores de A_IDADE 26 log_info("meu nome: %s, idade: %d", MEU_NOME, get_idade()); set_idade(100); log_info("minha idade agora é: %d", get_idade()); // testa a variável extern O_TAMANHO 33 log_info("o_tamanho é: %d", O_TAMANHO); 34 imprime_tamanho(); O_TAMANHO = 9; log_info("o TAMANHO agora é: %d", O_TAMANHO); 39 imprime_tamanho(); // testa a variável taxa estática na funç~ao 42 log_info("taxa primeiro: %f", atualiza_taxa(2.0)); 43 log_info("taxa novamente: %f", atualiza_taxa(10.0)); 44 log_info("taxa uma vez mais: %f", atualiza_taxa(300.0)); // testa o escopo (2 de 3) continua... João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 14 / 32

15 47 int contador = 4; 48 demo_escopo(contador); 49 demo_escopo(contador * 20); log_info("contador após a chamada de demo_escopo: %d", contador); return 0; 54 } continua... (3 de 3) João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 15 / 32

16 Análise do código ex22 main.c:4 Usar a palavra const que significa constante e é uma alternativa ao uso de #define para criar uma variável constante. ex22 main.c:6 Uma função simples que demonstra alguns aspectos do escoponuma função. ex22 main.c:8 Imprime o valor da constante contador como ela é no topo da função. ex22 main.c:10 Um if que inicia um novo bloco de escopo e possui outra variável contador nele. Esta versão de contador é realmente uma variável totalmente nova. Seria como se o comando if tivesse começado uma nova mini função. ex22 main.c:11 Um contador que é local a este bloco e é diferente daquele do parâmetro da função. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 16 / 32

17 Análise do código ex22 main.c:13 Imprime seu valor para você ver que aqui é 100, não o que foi passado para a função demo escopo. ex22 main.c:16 Agora vem a parte bizarra. Você tem contador em dois lugares: nos parâmetros para esta função e dentro do comando if. O comando if criou um novo bloco, assim o contador da linha 11 não tem impacto no parâmetro de mesmo nome. Esta linha o imprime e você verá que imprime o valor do parâmetro, não 100. ex22 main.c:18-20 agora colocamos o parâmetro contador para 3000 e o imprimimos, que demonstra que podemos mudar o valor do parâmetro, que isto não vai influenciar a versão da variável na função que que chamou demo escopo. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 17 / 32

18 Análise main ex22 main.c:26 Imprime o valor atual de MEU NOME e obtém o valor de A IDADE de ex22.c usando a função acessora get idade. ex22 main.c:27-30 Usa set idade de ex22.c para mudar o valor de A IDADE e depois imprimi-la. ex22 main.c:33-39 Agora fazemos a mesma coisa com O TAMANHO de ex22.c, porém agora estamos fazendo acesso direto e também demonstramos que realmente mudamos seu valor, imprimindo aqui e por imprime tamanho. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 18 / 32

19 Análise main ex22 main.c:42-44 Mostra como a variável estática taxa dentro de atualiza taxa é mantida entre duas chamadas. ex22 main.c:46-51 Finalmente, executando demo escopo algumas vezes você pode ver o escopo em ação. Importante a ser notado é que a variável local contador não muda. Passar uma variável como esta não deixará você mudar seu valor na função. Para fazer isso, você precisa do nosso velho amigo ponteiro. Se você passar um ponteiro para uma função, ela terá seu endereço e poderá mudar seu valor. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 19 / 32

20 Execução $ gcc -Wall -g -DNDEBUG -c -o ex22.o ex22.c $ gcc -Wall -g -DNDEBUG ex22_main.c ex22.o -o ex22_main./ex22_main [INFO] (ex22_main.c:26) Meu nome: Zed A. Shaw, idade: 37 [INFO] (ex22_main.c:30) Minha idade agora é: 100 [INFO] (ex22_main.c:33) O_TAMANHO é: 1000 [INFO] (ex22.c:32) Eu penso que o tamanho é: 1000 [INFO] (ex22_main.c:38) O TAMANHO agora é: 9 [INFO] (ex22.c:32) Eu penso que o tamanho é: 9 [INFO] (ex22_main.c:42) Taxa primeiro: [INFO] (ex22_main.c:43) Taxa novamente: [INFO] (ex22_main.c:44) Taxa uma vez mais: [INFO] (ex22_main.c:8) contador é: 4 [INFO] (ex22_main.c:16) na saída, contador tem valor: 4 [INFO] (ex22_main.c:20) contador após atribuiç~ao: 3000 [INFO] (ex22_main.c:8) contador é: 80 [INFO] (ex22_main.c:13) Contador nesse escopo tem valor 100 [INFO] (ex22_main.c:16) na saída, contador tem valor: 80 [INFO] (ex22_main.c:20) contador após atribuiç~ao: 3000 [INFO] (ex22_main.c:51) contador após a chamada de demo_escopo: 4 João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 20 / 32

21 Escopo e bugs Se tudo correu bem, você deve ser capaz de ver muitos dos diferentes modos em que você pode colocar variáveis no seu código C. Você pode usar extern ou funções acessoras como get idade para criar variáveis globais. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 21 / 32

22 Escopo e bugs Você pode criar novas variáveis dentro de um bloco e elas guardarão seu valor até a saída do bloco, deixando variáveis exteriores intactas. Você também pode passar um parâmetro para uma função e modificar o parâmetro não midificará a versão de quem chamou. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 22 / 32

23 Escopo e bugs A coisa mais importante a perceber é que tudo isso causa bugs A habilidade de C em colocar coisas em muitos lugares e depois te deixar acessá-las nestes lugares pode te confundir facilmente sobre onde elas existem. Se você não sabe onde elas vivem, as chances de manipulá-las corretamente diminuem. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 23 / 32

24 Evitando bugs relativos à pilha 1 Não obscureça uma variável como fizemos aqui com contador em demo escopo. Isto deixa você vulnerável a bugs sutis e difíceis de encontrar, como quando você pensa que mudou uma variável porém não mudou. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 24 / 32

25 Evitando bugs relativos à pilha 2 Evite muitas variáveis globais, especialmente se usadas entre múltiplos arquivos. Se você tiver que fazê-lo, faça por meio de acessores como get idade. Isto não se aplica a constantes, posto que elas são somente para leitura, como variáveis do tipo de O TAMANHO. Se você quiser que outros modifiquem esta variável, faça por meio de funções acessoras. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 25 / 32

26 Evitando bugs relativos à pilha 3 Quando em dúvida, ponha-as na Heap. Não confie na semântica de stack ou outros lugares especializados e, em vez disso, simplesmente use malloc. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 26 / 32

27 Evitando bugs relativos à pilha 4 Não use variáveis estáticas de função, como fizemos em atualiza taxa.elas são raramente úteis e terminam sendo um grande problema se você tentar escrever um programa com threads. Eles também são difíceis de encontrar comparado com uma correta variável constante global. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 27 / 32

28 Evitando bugs relativos à pilha 5 Evite o reuso dos parâmetros das funções pois elas te confundem se você está simplesmente reutilizando-os ou se você pensa que está modificando o valor na função chamadora. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 28 / 32

29 Evitando bugs relativos à pilha 6 Esqueça todas as regras anteriores. As regras devem ser quebradas onde for prático. De fato, você acabará em códigos que quebram todas estas regras e são perfeitamente válidos. As restrições de diferentes plataformas torna este procedimento por vezes necessário. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 29 / 32

30 Como quebrar o código. Testam igualdade e desigualdade de variáveis. Tente ter acesso direto às variáveis em ex22.c por meio de ex22 main que você pensa que não pode. Por exemplo, você pode acessar taxa dentro de atualiza taxa? O que acontece se você tem um ponteiro para ele. Retire a declaração extern em ex22.h e veja os erros e warnings do compilador. Adicione especificadores static ou const a diferentes variáveis e tente modificá-las. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 30 / 32

31 Trabalho extra Procure pelos conceitos de passar por valor e passar por referência. Escreva um exemplo de ambos. Use ponteiros para ter acesso a coisas que você não teria acesso. Use valgrind para ver como esse tipo de acesso aparece quando você o faz de forma errada. Escreva uma função recursiva que cause stack overflow. Não sabe o que é uma função recursiva? Tenta chamar demo escopo no final de demo escopo ele mesmo e veja como funciona. Reescreva o Makefile para compilar este programa. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 31 / 32

32 FIM João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 32 / 32

Laboratório de Programação - Exercícios 9, 10 e 11

Laboratório de Programação - Exercícios 9, 10 e 11 Laboratório de Programação - Exercícios 9, 10 e 11 Arrays e strings, Loops João Araujo Ribeiro jaraujo@uerj.br Universidade do Estado do Rio de Janeiro Departamento de Engenharia de Sistemas e Computação

Leia mais

Laboratório de Programação - Exercício 29

Laboratório de Programação - Exercício 29 Laboratório de Programação - Exercício 29 Bibliotecas e linkagem João Araujo Ribeiro jaraujo@uerj.br Universidade do Estado do Rio de Janeiro Departamento de Engenharia de Sistemas e Computação João Araujo

Leia mais

Laboratório de Programação - Exercício 30

Laboratório de Programação - Exercício 30 Laboratório de Programação - Exercício 30 Testes automáticos João Araujo Ribeiro jaraujo@uerj.br Universidade do Estado do Rio de Janeiro Departamento de Engenharia de Sistemas e Computação João Araujo

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Organização de um programa Copyright 2014 IFRN Agenda Escopo de variáveis Local Global Macros #define Organizando

Leia mais

Gilberto A. S. Segundo. 24 de agosto de 2011

Gilberto 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 mais

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná

Funçõ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 mais

Algoritmos e Estruturas de Dados I (DCC/003) Funções

Algoritmos e Estruturas de Dados I (DCC/003) Funções Algoritmos e Estruturas de Dados I (DCC/003) Funções Funções 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

Leia mais

Material sobre Funções AEDS 1

Material 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 mais

Programação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória

Programação Estruturada Prof. Rodrigo Hausen  Organização e Gerenciamento de Memória Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Organização e Gerenciamento de Memória 1 AULA PASSADA - vetores ou arrays Declaração de um vetor (array) em C: tipo nome[tamanho];

Leia mais

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

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica

Introdução a Programação. Ponteiros e Vetores, Alocação Dinâmica Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes

Leia mais

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros

Leia mais

Curso de Programação C em Ambientes Linux Aula 05

Curso de Programação C em Ambientes Linux Aula 05 Curso de Programação C em Ambientes Linux Aula 05 Centro de Engenharias da Mobilidade - UFSC Professores Gian Berkenbrock e Giovani Gracioli http://www.lisha.ufsc.br/c+language+course+resources Conteúdo

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Aula 12 Prof. Daniel Cavalcanti Jeronymo Layout de memória. Ponteiros: conceito, operadores de referência e dereferência, operações, aritmética e indireção múltipla Universidade

Leia mais

prim = A ; prim = &A[0];

prim = A ; prim = &A[0]; 57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro

Leia mais

Métodos Computacionais. Funções, Escopo de Variáveis e Ponteiros

Mé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 mais

ponteiros INF Programação I Prof. Roberto Azevedo

ponteiros 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 mais

Introdução à Programação em C

Introdução à Programação em C Introdução à Programação em C Tipos e Operadores Elementares Estruturas de Controlo Resumo Novidades em C Exemplo: Factorial Tipos de Dados Básicos Saltos Condicionais: if-then-else Valor de retorno de

Leia mais

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06 Disciplina: Linguagem de Programação C Profª Viviane Todt Diverio Funções, variáveis, parâmetros formais

Leia mais

Estruturas de Repetição

Estruturas 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 mais

Laboratório de Programação - Exercício 33

Laboratório de Programação - Exercício 33 Laboratório de Programação - Exercício 33 Algoritmos para Lista Encadeada João Araujo Ribeiro jaraujo@uerj.br Universidade do Estado do Rio de Janeiro Departamento de Engenharia de Sistemas e Computação

Leia mais

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO

TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO Ponteiros Definição Variável: área de memória que armazena dados de um certo tipo. Na memória, toda variável possui um endereço. Um Ponteiro é uma variável especial

Leia mais

Sub-rotinas em C. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto

Sub-rotinas em C. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Sub-rotinas em C Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Sub-rotinas: Função e Procedimentos A função main Variáveis globais e locais Escopo de variáveis Passagem

Leia mais

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência Introdução a Programação Ponteiros e Passagem de Argumentos por Referência Tópicos da Aula Hoje aprenderemos a manipular endereços de memória ou ponteiros Variáveis e Endereços Conceito de Ponteiro Operadores

Leia mais

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo Algoritmos e Estruturas de Dados I Funções Pedro Olmo Stancioli Vaz de Melo Exercício Brutus e Olívia foram ao médico, que disse a eles que ambos estão fora do peso ideal. Ambos discordaram veementemente

Leia mais

1 Exercícios com ponteiros

1 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 mais

Programação I Funções. Prof. Carlos Alberto

Programação I Funções. Prof. Carlos Alberto Programação I Funções Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Funções Funções são blocos de códigos que podem ser nomeados e chamados de dentro de um programa; Funções

Leia mais

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem

Leia mais

Funções. definição, declaração e chamada

Funções. definição, declaração e chamada Funções definição, declaração e chamada Funções Em C, um programa é uma coleção de FUNÇÕES. Uma função é um bloco de código que recebe um nome e que tem possivelmente PARÂMETROS. A partir do nome, o bloco

Leia mais

Aula 17: Ponteiros e Alocação Dinâmica em C

Aula 17: Ponteiros e Alocação Dinâmica em C Aula 17: Ponteiros e Alocação Dinâmica em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Ponteiros e Alocação Dinâmica Programação de Computadores

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Introdução a Programação. Tipos Estruturados de Dados

Introdução a Programação. Tipos Estruturados de Dados Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados

Leia mais

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Alocação Dinâmica de Memória Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Alocação Dinâmica de Memória Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

Básico: estrutura de programa, sintaxe Interface com linha de comando

Básico: estrutura de programa, sintaxe Interface com linha de comando Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.6. Ponteiros 3.6.1. Introdução 3.6.2. Uso

Leia mais

Ponteiros em C. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1

Ponteiros em C. Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Ponteiros em C Prof. Rui Jorge Tramontin Jr. UDESC - Rui J. Tramontin Jr. 1 Índice Introdução Operações sobre Ponteiros Exemplos Ponteiros e Funções Alocação Dinâmica em C UDESC - Rui J. Tramontin Jr.

Leia mais

Linguagem e Técnicas de Programação

Linguagem 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 mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Bacharelado em Ciência da Computação Conceitos de Linguagens de Programação Aula 07 (rogerio@prudente.unesp.br) Aula 7 Implementação

Leia mais

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon

Algoritmos 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 mais

SISTEMAS OPERATIVOS I

SISTEMAS OPERATIVOS I Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática SISTEMAS OPERATIVOS I Ficha 6 Abril de 2006 Nuno Malheiro Maria João Viamonte Berta Batista Luis Lino Ferreira Sugestões

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Estruturas 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 mais

Conhecendo a Linguagem de Programação C

Conhecendo a Linguagem de Programação C Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como

Leia mais

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo

Algoritmos e Estruturas de Dados I. Funções. Pedro Olmo Stancioli Vaz de Melo Algoritmos e Estruturas de Dados I Funções Pedro Olmo Stancioli Vaz de Melo Exercício Brutus e Olívia foram ao médico, que disse a eles que ambos estão fora do peso ideal. Ambos discordaram veementemente

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Programação de Computadores II. Cap. 5 Alocação Dinâmica

Programação de Computadores II. Cap. 5 Alocação Dinâmica Programação de Computadores II Cap. 5 Alocação Dinâmica Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais

Leia mais

Linguagens de Programação Aula 11

Linguagens de Programação Aula 11 Linguagens de Programação Aula 11 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Uma definição de subprograma descreve as ações representadas pelo subprograma Subprogramas podem ser funções

Leia mais

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays

Programação Orientada a Objetos para Redes de Computadores. Arrays. Arrays Programação Orientada a Objetos para Redes de Computadores Elias Mitre http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Arrays Estruturas de dados que contêm itens

Leia mais

SCC Capítulo 2 Recursão

SCC Capítulo 2 Recursão SCC-501 - Capítulo 2 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis

Leia mais

Programação Orientada a Objetos para Redes de Computadores

Programação Orientada a Objetos para Redes de Computadores Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Estruturas de dados que

Leia mais

- Mapa de memória de um processo - Ponteiros

- Mapa de memória de um processo - Ponteiros 1 MCTA028 Programação Estruturada - Mapa de memória de um processo - Ponteiros Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti Luiz Rozante 3Q-2018 2 Alocação de

Leia mais

Programação: Vetores

Programaçã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 mais

Tipos Abstratos de Dados. Estrutura de Dados

Tipos 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 mais

Estruturas de Dados Aulas 3 e 4: Uso da. 14/03/2011 e 16/03/2011

Estruturas 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 mais

Programação Estruturada Prof. Rodrigo Hausen Ponteiros e Passagem de Parâmetros

Programação Estruturada Prof. Rodrigo Hausen   Ponteiros e Passagem de Parâmetros Programação Estruturada Prof. Rodrigo Hausen http://progest.compscinet.org Ponteiros e Passagem de Parâmetros 1 AULA PASSADA - ponteiros Uma declaração tal como: tipo *nome; Declara um ponteiro: referência

Leia mais

Funções. definição, declaração e chamada

Funções. definição, declaração e chamada Funções definição, declaração e chamada Funções Em C, um programa é uma coleção de FUNÇÕES. Uma função é um bloco de código que recebe um nome e que tem possivelmente PARÂMETROS. A partir do nome, o bloco

Leia mais

Aula 18: Funções em C

Aula 18: Funções em C Aula 18: Funções em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Funções em C Programação de Computadores IV 1 / 38 Agenda 1 Revisão e Contexto

Leia mais

Programação de Computadores II. Cap. 4 Funções

Programação de Computadores II. Cap. 4 Funções Programação de Computadores II Cap. 4 Funções Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:

Leia mais

Módulo 5 Vetores e Alocação Dinâmica

Mó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 mais

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 em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia mais

#include <stdio.h> void Swap (int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; } main () {

#include <stdio.h> void Swap (int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; } main () { 422 #include void Swap (int *a,int *b) int temp; temp=*a; *a=*b; *b=temp; main () int num1,num2; printf("\nentre com o primeiro valor: "); scanf ("%d",&num1); printf("\nentre com o segundo valor:

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Linguagem C: funções Definição: blocos de código que podem ser chamados de dentro de um programa.

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.7. Funções 3.7.1. Introdução 3.7.2. Uso de

Leia mais

Estrutura de dados 1. Ponteiros

Estrutura de dados 1. Ponteiros Estrutura de dados 1 Ponteiros Ponteiros Um ponteiro é um endereço de memória O valor de um ponteiro indica onde uma variável está armazenada Um ponteiro proporciona um modo de acesso a uma variável sem

Leia mais

Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012

Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012 Programação 2012/2013 1º Semestre MEEC Laboratório 2 Semana de 22 de Outubro de 2012 1. Implemente os programas cujos fluxogramas foram definidos na aula de problemas da semana passada: Exercício 7- Calculo

Leia mais

Alocação Dinâmica de Memória. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Alocação Dinâmica de Memória. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Alocação Dinâmica de Memória David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Alocação Estática x Dinâmica C: dois tipos de alocação de memória: Estática e Dinâmica Na alocação estática, o espaço

Leia mais

1 Exercícios com ponteiros

1 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 mais

Linguagem C. André Tavares da Silva.

Linguagem C. André Tavares da Silva. Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser

Leia mais

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany fabianyl@utfpr.edu.br ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include

Leia mais

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são: Apêndice A Classe Vector A classe Vector permite a representação de um vetor de dados de maneira similar à de um array, visto na disciplina Programação Orientada a Objetos I, mas com maior flexibilidade.

Leia mais

Revisão de Programação em C++ Leandro Tonietto Estruturas de Dados em C++ Segurança da Informação

Revisão de Programação em C++ Leandro Tonietto Estruturas de Dados em C++ Segurança da Informação Revisão de Programação em C++ Estruturas de Dados em C++ Segurança da Informação ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto mar-09 Sumário Revisão de conceitos básicos de programação Diretiva

Leia mais

MC102 - Algoritmos e programação de computadores. Aula 14: Funções e Procedimentos

MC102 - Algoritmos e programação de computadores. Aula 14: Funções e Procedimentos MC102 - Algoritmos e programação de computadores Aula 14: Funções e Procedimentos Procedimentos Procedimentos são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1 Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores Aula - Tópico 1 1 Problema 1 Considere o seguinte problema: Determinar o valor de y = seno(1,5). 2 Definições Para

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação ET42G Aula 21 Prof. Daniel Cavalcanti Jeronymo Conversão de tipos. Alocação dinâmica de memória. Recursão. Criação de bibliotecas, arquivos de cabeçalhos e variáveis globais.

Leia mais

Declarando e Utilizando Ponteiros. Para declarar um ponteiro temos a seguinte forma geral: tipo_do_ponteiro *nome_da_variável;

Declarando e Utilizando Ponteiros. Para declarar um ponteiro temos a seguinte forma geral: tipo_do_ponteiro *nome_da_variável; Declarando e Utilizando Ponteiros Para declarar um ponteiro temos a seguinte forma geral: tipo_do_ponteiro *nome_da_variável; É o asterisco (*) que faz o compilador saber que aquela variável não vai guardar

Leia mais

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica 13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física

Leia mais

Ponteiros de Variáveis

Ponteiros de Variáveis Ponteiros de Variáveis C++ permite o armazenamento e a manipulação de valores de endereços de memória. Para cada tipo existente, há um tipo ponteirocapaz de armazenar endereços de memória em que existem

Leia mais

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 4 Funções. 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 4 Funções 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Ponteiros Parte 1 Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Ponteiros Ponteiro Ponteiros

Leia mais

Implementando subprogramas

Implementando subprogramas Implementando subprogramas Linguagens de Programação Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. http://github.com/malbarbo/na-lp-copl

Leia mais

INF1007: 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 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 mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Aula 13 Prof. Daniel Cavalcanti Jeronymo Declaração de funções. Funções sem e com retorno. Parâmetros de funções. Ponteiros para funções. Universidade Tecnológica Federal

Leia mais

Alocação Dinâmica em C

Alocaçã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 mais

Introdução à Linguagem C

Introdução à Linguagem C Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 03 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 mais

Métodos Computacionais. Tipos Estruturados

Métodos Computacionais. Tipos Estruturados Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Aula 4 Prof. Daniel Cavalcanti Jeronymo Compilação por linha de comando. Ambiente integrado de desenvolvimento (IDE). Parâmetros de compilação. Estrutura de um programa

Leia mais

Métodos Computacionais

Mé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 mais

Alocação Dinâmica de Memória

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 mais

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos

Leia mais

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito

Leia mais

Variáveis e Operadores em C

Variáveis e Operadores em C Variáveis e Operadores em C Luís Charneca luis.charneca@gmail.com NOMES DE VARIÁVEIS (1) As variáveis no C podem ter qualquer nome se duas condições forem satisfeitas: o nome deve começar com uma letra

Leia mais

DAS5102 Fundamentos da Estrutura da Informação

DAS5102 Fundamentos da Estrutura da Informação Ponteiros e Funções Funções ou sub-rotinas são parcelas de código que podem ser invocadas a partir do programa principal ou até mesmo por outras sub-rotinas. Elas têm como objetivo a execução de uma tarefa

Leia mais

Linguagem C ponteiros

Linguagem C ponteiros Linguagem C ponteiros IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Introdução à linguagem C... Vetores Matrizes Funções Recursão Registros Aula

Leia mais

Primeiros programas.

Primeiros programas. Primeiros programas. David Déharbe 1 1 Objetivos da aula Revisar as atividades "edição", "compilação", ("correção" e) "execução". Revisar os primeiros elementos de linguagem C já vistos. Aprender a escrever

Leia mais

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro

Leia mais

Computação eletrônica: Funções

Computação eletrônica: Funções Computação eletrônica: Gurvan Huiban ghuiban@cin.ufpe.br 13 de maio de 2014 Plano de aula 1 Princípio 2 Declaração de funções 3 Escope de variáveis Introdução O que é? Bloco de instruções desenvolvido

Leia mais

Alocação Dinâmica de Memória

Alocação Dinâmica de Memória Alocação Dinâmica de Memória Elerson R. S. Santos elerson@dcc.ufmg.br Algoritmos e Estruturas de DCC UFMG Variáveis Uma variável representa um nome simbólico para uma posição de memória. Cada posição de

Leia mais