1 Objectivos. 2 Linguagem C. Arquitecturas e Sistemas Operativos (2 a Parte) AT 1: Programação em C. Rever alguns aspectos da programação em C
|
|
- Isadora Bardini Lobo
- 6 Há anos
- Visualizações:
Transcrição
1 Arquitecturas e Sistemas Operativos (2 a Parte) AT 1: Programação em C 3 o Ano MIEEC 1 Objectivos Rever alguns aspectos da programação em C 2 Linguagem C A linguagem C é uma linguagem imperativa. Todos os programas têm que ter uma e uma só função de nome main. De facto, o programa mais simples em C (main.c) é: Para o compilar em Linux basta executar o comando: gcc -Wall main.c -o main Por momentos vamos ignorar o aviso: main.c: In function main : main.c:2: warning: control reaches end of non-void function e executá-lo:./main Nota: A substring./ que precede o nome do programa indica ao interpretador de comandos, vulgo shell, onde pode encontrar o programa main. E o resultado desta execução é... nada visível terminando o programa de imediato. De facto, outra coisa não seria de esperar porque a função main() não inclui qualquer instrução. Antes de avançar para um programa que faz alguma coisa, conviria eliminar o aviso do compilador. Para isso basta acrescentar a linha à função main():
2 O programa mais famoso O programa C mais famoso é o Hello, World! : printf("hello, World!\n"); O qual invoca a função printf() para imprimir a string Hello, World! na consola (mais correctamente, na saída standard). A primeira linha é uma directiva para incluir um ficheiro do tipo header com a declaração da função printf() (entre outras): Em C todas as funções têm que ser declaradas (ou definidas) antes de serem invocadas. (Ver mais à frente o que são a declaração, a definição e a invocação duma função.) Para saber que header file deverá incluir quando usa uma função da biblioteca C poderá executar o utilitário man, como se segue; man 3 printf Obviamente, se estiver interessado noutra função deverá substituir a string printf pelo nome dessa função. O número 3 especifica que se pretende a página do manual de programação, o qual é, por assim dizer, o 3 o volume do manual disponível através de man. Mais sobre printf() É claro que a função printf() da biblioteca C permite imprimir muito mais do que uma constante do tipo string, i.e. uma string cujo valor não varia, como é o caso de Hello, World!\n. (A propósito, o último carácter desta string, o carácter \n, representa o carácter nova linha e faz com que o cursor se desloque para o início da linha seguinte. Outro carácter especial de interesse é o carácter \t, o qual representa um tab, i.e. um número pré-definido de espaços em branco.) De facto, printf() permite imprimir um n o variável de argumentos. O primeiro é, digamos, a string principal, a qual especifica não só a parte fixa do que se pretende imprimir como o formato da parte variável, se alguma, sendo por isso designada por string de formatação. O formato da parte variável é descrito por uma string que consiste no carácter % seguido por um conversion specifier, o qual especifica o formato de representação da parte variável da string a imprimir. Em princípio, deverá haver um conversion specifier, e correspondente carácter %, por cada argumento de printf() que segue a string de formatação. O ficheiro digits.c ilustra o uso de printf() para imprimir os 10 algarismos um por linha. void main() { int i;
3 for(i = 0; i < 10; i++) { printf("%d\n", i); Neste caso como pretendemos imprimir apenas números inteiros usamos a string %d. Para uma especificação do formato e do significado dos conversion specifiers pode consultar a man page de printf() retornada por man 3 printf. A printf_format_placeholderspginadawikipediasobre\texttt{printf apresenta um sumário dessa informação duma forma mais legível recorrendo a tabelas. Após compilar: gcc -Wall digits.c -o digits A execução de digits (dando o comando./digits) produz o resultado esperado: [...] 8 9 Onde [...] indica que omiti algumas linhas. Tipos Na linguagem C, variáveis e constantes podem ser dum conjunto de tipos básicos, ou primitivos, tais como: char, para um carácter ou um inteiro de 8 bits com sinal; short int, int e long int para inteiros com sinal usando um n o diferente de bytes (a linguagem C não define o tamanho de cada um destes tipos, o que obriga a algum cuidado para garantir portabilidade do código). Para permitir uma escrita mais eficiente, C permite que se omita a string int em short int e em long int. float e double para números de vírgula flutuante de precisão simples e dupla, respectivamente. Além dos tipos inteiros com sinal descritos acima, C suporta ainda tipos inteiros sem sinal que se especificam precedendo as key words correspondentes com a string unsigned. Por exemplo: unsigned char ou unsigned long. (Note-se que neste último caso, estamos a usar apenas long em vez de long int.) Essencialmente, um tipo determina: 1. O conjunto de valores que uma constante ou variável pode assumir;
4 2. O conjunto de operações que se pode aplicar a uma constante ou variável desse tipo. Além disso, um tipo determina a forma como uma constante ou variável é representada internamente, i.e. ao nível do processador e da memória. O programa div em div.c ilustra o efeito do tipo duma variável no resultado da operação aritmética divisão: int m = 10; int n = 3; int q; double x = 10.0; double y = 3.0; double z; q = m/n; z = x/y; printf(" %d / %d = %d \n %f / %f = %f \n", m, n, q, x, y, z); Compilando-o e executando-o, obtém-se: 10 / 3 = / = Um dos aspectos mais subtis da linguagem C é a conversão entre tipos. De facto, C realiza conversão entre tipos quando numa expressão se usa constantes/variáveis de tipos diferentes. Contudo, os resultados nem sempre são os que se esperam, como ilustra o seguinte programa que se encontra no ficheiro conv.c: int m = 10; int n = 3; int q; double z; q = m/n; z = m/n; printf(" %d / %d = %d \n %d / %d = %f \n", m, n, q, m, n, z);
5 O qual produz: 10 / 3 = 3 10 / 3 = Tente alterar este programa para que a segunda expressão produza de facto o resultado da divisão não inteira. (Pode encontrar uma solução no ficheiro casts.c) Além dos tipos básicos, C permite ainda especificar tipos compostos tais como vectores (ou arrays) e estruturas de dados: int a[10]; // a is an array of 10 integers (not initialized) struct { double re, im; z; // z is a struct composed of two doubles Funções Uma função em C é muito semelhante a uma função matemática: tal como esta última, pode ser usada para mapear os valores dum determinado domínio, especificados no seu argument, em valores dum contradomínio, o valor retornado pela função. Em C, as funções aparecem no contexto de 3 construções, ou usos: Definição especifica as instruções que deverão ser executadas, sempre que a função é invocada, para produzir o resultado desejado a partir dos argumentos. Invocação determina a execução das instruções que constam na sua definição para um determinado valor de cada um dos seus argumentos. Declaração declara o nome da função bem como os tipos dos seus argumentos e dos valores de retorno. A declaração é usada essencialmente para simplificar a compilação. De notar que a declaração duma função nem sempre é necessária, nomeadamente se a invocação da função for precedida pela sua definição. O programa fdiv em fdiv.c ilustra precisamente este facto: double div(double x, double y) { double z; // Definition of div() z = x/y; return z; double u = 10.0; double v = 3.0;
6 printf("%f / %f = %f \n", u, v, div(u,v)); // Invocation of div() A compilação e a execução deste programa produzem os resultados esperados. Se definirmos a função div() depois da função main() (ver ficheiro no_decl.c) de forma a que a função div() é invocada antes de ser definida e sem que tenha sido previamente declarada obteremos o seguinte erro de compilação: gcc -Wall no_decl.c -o no_decl decl.c: In function main : decl.c:7: warning: implicit declaration of function div decl.c:7: warning: format %f expects type double, but argument 4 has type i decl.c: At top level: decl.c:12: error: conflicting types for div O que acontece aqui é que o compilador ao encontrar a invocação de div assume que retorna um inteiro e infere que os seus argumentos são do tipo double. Contudo, mais à frente, quando encontra a definição de div(), detecta que há um conflito, pois o valor de retorno é do tipo double e assinala um erro. Neste caso, tudo o que temos que fazer é declarar a função div() antes da primeira invocação, como ilustrado em decl.c: double div(double, double); // declaration of div() double u = 10.0; double v = 3.0; printf("%f / %f = %f \n", u, v, div(u,v)); // invocation of div() double div(double x, double y) { // definition of div() double z; z = x/y; return z; IMP.- Nem sempre a invocação duma função antes da sua definição e sem a sua declaração prévia dá origem a erros de compilação. Contudo, mesmo nestes casos o comportamento do programa pode ser diferente do desejado. Assim, é importante que sempre que usa uma função antes de a definir (ou se ela estiver definida noutro ficheiro, como é o caso de printf()) a declare previamente, ou de forma explícita ou incluindo um header file com essa declaração.
7 Passagem de argumentos duma função Um aspecto essencial da linguagem C é que os argumentos são passados por valor. I.e., quando da invocação duma função com argumentos, os valores dos argumentos especificados nessa invocação são copiados para uma região de memória apropriada e que será usada pela função invocada sempre que as suas instruções acederem (i.e. lerem ou escreverem) aos seus argumentos. Este aspecto da linguagem C pode ser determinante na correcção dum programa. O programa seguinte fun_args.c ilustra uma implementação errada duma função que troca o valor das variáveis que lhe são passadas como argumento: void swap(int a, int b) { int t; printf("in swap, before swap: a = %d b = %d\n", a, b); t = a; a = b; b = t; printf("in swap, after swap: a = %d b = %d\n", a, b); int n = 5; int m = 1; printf("before calling swap: n = %d m = %d\n", n, m); swap(n,m); printf("after calling swap: n = %d m = %d\n", n, m); De facto, o problema é que o que é passado à função swap() são os valores das variáveis m e n, os quais são atribuídos aos argumentos a e b. Depois, a função swap() opera apenas sobre estas variáveis e não sobre as variáveis m e n. Para conseguir o efeito desejado temos que usar apontadores. Apontadores Um apontador é uma variável que toma como valor um endereço. De facto, em C, apontadores não são apenas endereços, são endereços de variáveis/constantes dum determinado tipo, ou de forma mais breve endereços dum determinado tipo, o que tem algumas vantagens como veremos. Para suportar a manipulação de endereços, a linguagem C oferece 2 operadores: & o qual retorna o endereço da variável que é o seu operando; * o qual retorna o valor na posição de memória cujo endereço é o seu operando; O programa ptr em ptr.c ilustra o uso destes 2 operadores:
8 0: 1: 2: 3: int m = 10; 4: int *ptr; // pointer to integer 5: 6: ptr = &m; // initialize ptr with the address of m 7: printf("ptr = %p \t *ptr = %d \t m = %d \n", ptr, *ptr, m); 8: return 0 9: De notar, a linha 4 é a declaração da variável ptr como um apontador para inteiro. Esta declaração pode ser lida como: ptr é uma variável cujo valor apontado é um inteiro. Compilando-o e executando-o, obtém-se: ptr = 0xbfccc73c *ptr = 10 m = 10 Ou seja, à variável inteira m foi atribuída uma região de memória começando na posição de endereço 0xbfccc73c. E o valor dessa região de memória obtido usando a expressão *ptr está de acordo com o valor da variável m. Agora que sabemos como funcionam os apontadores poderemos corrigir a função swap() apresentada acima (ver ficheiro swap.c): void swap(int* a, int* b) { int t; printf("in swap, before swap: *a = %d *b = %d\n", *a, *b); t = *a; *a = *b; *b = t; printf("in swap, after swap: *a = %d *b = %d\n", *a, *b); int n = 5; int m = 1; printf("before calling swap: n = %d m = %d\n", n, m); swap(&n,&m); printf("after calling swap: n = %d m = %d\n", n, m); As alterações são menores, mas a diferença no resultado é imensurável: entre um resultado correcto e outro que não o é. De facto, a solução consiste em passar como argumentos a swap() não o valor
9 das variáveis cujos valores pretendemos trocar, mas os endereços dessas variáveis. Estes endereços são usados então dentro da função swap() para alterar os valores das posições de memória correspondentes. IMP.- Note-se que C continua a passar os argumentos por valor, apenas estes argumentos são endereços, o que permite produzir um efeito semelhante ao modo de passagem de argumentos por referência. O programa swap ilustra um dos principais usos de apontadores na linguagem C: a possibilidade de alterar o valor duma variável de forma visível fora da função que faz essa alteração. Um dos exemplos mais comuns do uso desta funcionalidade é a função scanf() da biblioteca C. A função scanf() é dual da função printf() no sentido de que enquanto esta última permite escrever na saída standard (normalmente a consola), scanf() permite ler da entrada standard (normalmente o teclado). O programa input em input.c ilustra o uso de scanf() para ler um inteiro do teclado: int n; printf("enter an integer... "); scanf("%d", &n); printf("\nread %d \n", n); Ou seja, neste caso, scanf() inicializa a região de memória apontada pelo endereço que lhe é passado como argumento, neste caso o endereço da variável n, com o inteiro introduzido através do teclado, inicializando desta forma a variável n com esse valor. Note-se que scanf() usa strings de formatação com um formato semelhante ao destas strings em printf(). É assim possível ler não só inteiros mas também números de vírgula flutuante bem como valores de outros tipos. Para uma explicação detalhada do uso desta função pode consultar a sua man page dando o comando man 3 scanf. Para um sumário mais legível pode consultar a página correspondente da Wikipedia Strings Em C, há uma relação estreita entre strings e endereços/apontadores. De facto, C não tem um tipo string, mas apenas um tipo char. Contudo, atendendo a que uma string é tipicamente guardada em memória com cada um dos seus carácteres em posições consecutivas, é possível referir uma string pelo endereço da sua primeira posição de memória. Contudo tal não basta. Como é que sabe qual é o último carácter duma string? A solução adoptada em C, é usar um carácter especial, conhecido por end of string character, o carácter de código 0, para marcar o fim duma string. O programa string em string.c ilustra este aspecto da linguagem C: // Strings are represented as pointers to their first character // The end of string is marked by the \0 character
10 char *str, *p; %p\n", "Hello World!\n"); str = "Hello World!\n"; for( p = str; *p!= \0 ; p++) %p: %c\n", p, *p); O que é que este programa faz? Verifique a sua resposta compilando-o e executando-o. Arrays A linguagem C suporta também arrays/vectores. O programa array em array.c ilustra alguns dos aspectos relacionados com a sintaxe de manipulação de vectores em C: 0: 1: 2: 3: int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9; 4: int i; 5: 6: for( i = 0; i < 10; i++ ) 7: printf("a[%d] = %d\n", i, a[i]); 8: 9: Em particular note o uso de [] na declaração dum vector (na linha 3), bem como na referência a um elemento particular desse vector na linha 7. Note-se que os indíces dum vector começam em 0. De notar ainda, a inicialização dos elementos do vector na linha 3 usando-se para o efeito {,. Os elementos dum vector não inicializado terão um valor arbitrário. Quando não se faz a inicialização dos elementos do vector na sua declaração, é necessário especificar o n o de elementos do vector. Quando se faz a inicialização, o compilador assume que o vector tem um n o de elementos iguais ao n o de valores usados na inicialização. Tal como uma string consiste numa sequência de carácteres, também um array/vector consiste numa sequência de elementos dum determinado tipo. Assim, em C há uma relação estreita entre arrays e endereços/apontadores. Nomeadamente, o nome dum vector é de facto o endereço da primeira posição de memória desse vector. Como ilustra o programa array ptr em array ptr.c: int a[] = {0, 1, 2; int i; int *p;
11 printf("array %p\n", a); for( i = 0, p = a; i < 3; i++, p++) { printf("a[%d] (@ %p) = %d\n", i, &a[i], a[i]); printf("a[%d] (@ %p) = %d\n", i, p, *p);
Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4
Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para
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 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 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 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 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 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 maisFunções de Entrada e Saída
inicio Escrita no ecrã (Saída de dados) Escrever( introduza o valor do raio ) Raio Leitura do valor do raio S Raio < 0 N O utilizador insere o valor do raio (Entrada de dados do teclado) Escrita no ecrã
Leia maisLinguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação
Linguagem C: funções e ponteiros Prof. Críston Algoritmos e Programação Funções Recurso das linguagens de programação que permite dar um nome para um conjunto de instruções Facilita a reutilização de algoritmos
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 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 maisLinguagem C. Prof.ª Márcia Jani Cícero
Linguagem C Prof.ª Márcia Jani Cícero A estrutura Básica de um Programa em C Consiste em uma ou várias funções ou programas. main( ) // primeira função a ser executada // inicia a função // termina a função
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 maisApresentação da ferramenta de programação. Comandos de entrada e saída. Prof. Alex Camargo
UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO Apresentação da ferramenta de programação. Comandos de entrada e saída Prof. Alex Camargo alexcamargoweb@gmail.com Linguagem C A linguagem
Leia maisEstrutura do programa
Linguagem C Estrutura do programa Exemplo: #include #include main() { printf( Ola, mundo! ); system( pause ); }
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 maisConceito de procedimentos e funções
Tópicos Introdução Como funcionam as funções Declaração de funções Exemplo de funções 1 Introdução As funções, são unidades de código desenhadas para cumprir uma determinada tarefa. Até agora, já utilizamos
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 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 maisPROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Trabalho nº 5 Funções http://tele1.dee.fct.unl.pt/pm
Leia maisProgramação Imperativa. Lição n.º 16 A pilha de execução
Programação Imperativa Lição n.º 16 A pilha de execução A pilha de execução Registos de execução. Arrays locais. Caso da alocação dinâmica. Segmento de dados. 11/17/16 Programação Imperativa 2 A pilha
Leia maisAmbientação com a Sintaxe de Java: parte 1
Ambientação com a Sintaxe de Java: parte 1 Prof. Gustavo Wagner FATEC-PB Programas em Java Texto do programa: arquivo com extensão.java Arquivo contém ao menos uma classe Nome do arquivo deve ser IGUAL
Leia maisLinguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1
Linguagem C: Variáveis e Operadores Prof. Leonardo Barreto Campos Sumário Variáveis: Tipos de variáveis; Nome da variável; Palavras reservadas; A função printf(); A função scanf(); Variáveis locais; Variáveis
Leia maisAula 4. Programa para tabelar potências de base 2 Análise de erros de overflow/underflow
Aula 4 Algoritmo para determinar o máximo de uma sequência de n inteiros sendo n dado. Limite da capacidade de representação das variáveis do tipo int. Programa para tabelar potências de base 2 Análise
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 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 maisComputação I (MAB120) DCC/UFRJ
Computação I (MAB120) DCC/UFRJ Aula 12: vetores 13 de maio de 2016 Objetivos dessa aula Apresentar o conceito de Tipos Compostos Homogêneos Apresentar o conceito de vetores Apresentar as operações básicas
Leia maisLinguagem C. Eliane Pozzebon
Linguagem C Eliane Pozzebon Material de Apoio de C Site da disciplina: http://www.univasf.edu.br/~eliane.pozzebon Slides de aulas Exercícios Dev-C++: um ambiente de programação interativo e gratuito para
Leia maisOperadores. Tipo de operadores. Aritméticos. Relacionais. Lógicos. Bit a bit. Cálculos aritméticos: soma, subtracção, multiplicação, divisão, etc.
Operadores Tipo de operadores Aritméticos Cálculos aritméticos: soma, subtracção, multiplicação, divisão, etc. Relacionais Comparação entre entidades. Lógicos Bit a bit 1 Operadores Aritméticos Operadores
Leia maisProgramação Orientada a Objetos. Manipulação de Exceções
Programação Orientada a Objetos Manipulação de Exceções Cristiano Lehrer, M.Sc. Introdução à Manipulação de Exceções (1/2) Em uma linguagem sem manipulação de exceção: Quando ocorre uma exceção, o controle
Leia mais(SCC-0120) Linguagem C
(SCC-0120) Introdução à Ciência da Computação: Linguagem C Prof. Zhao Liang Estag. PAE: Murillo G. Carneiro (São Carlos) Instituto de Ciências Matemáticas e Computação (ICMC) (SCC-0120) Introdução à Ciência
Leia maisFabiano Moreira.
Fabiano Moreira professor@fabianomoreira.com.br Um pouco de história Java 1.02 (250 classes, lenta) Java 1.1 (500 classes, um pouco mais rápida) Java 2, versões 1.2-1.4 (2300 classes, muito mais rápida)
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 maisUNIVERSIDADE 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 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 maisa) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 1. Um programa P foi compilado com um compilador
Leia maisLinguagem de Programação I. Aula 10 Funções
Linguagem de Programação I Aula 10 Funções Da Aula Anterior Tipos de dados básicos e operadores em C Declaração de variáveis e modificadores de tipo Estruturas de Controle Arrays unidimensionais Geração
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 maisLinguagem C. Programação Estruturada. Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo
Programação Estruturada Linguagem C Modularização (Funções) Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Introdução Por que usar funções? Escopo de Variáveis Declarando uma
Leia maisPedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes
Programação Funcional 2 a Aula Tipos e classes Pedro Vasconcelos DCC/FCUP 2012 Tipos Um tipo é um nome para uma coleção de valores relacionados. Por exemplo, o tipo Bool True contém dois valores lógicos:
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 mais5 Arrays. 5.1 Criando um array. 5.2 Inicializando arrays. c:\>java Array Janeiro tem 31 dias.
5 Arrays Arrays são grupos de variáveis do mesmo tipo. As arrays podem armazenar variáveis de qualquer tipo (tipo de dado primitivo ou objetos), mas é importante lembrar que todos os valores devem ser
Leia maisInstituto Superior de Engenharia de Lisboa
Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)
Leia maisMC-102 Aula 10 Vetores
MC-102 Aula 10 Vetores Instituto de Computação Unicamp 15 de Setembro de 2016 Roteiro 1 Introdução 2 Vetores Definição de Vetores Vetores Como usar Vetores e a Memória Vetores Exemplos 3 Informações Extras:
Leia maisUniversidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Material preparado pela profa Silvana Maria Affonso de Lara
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação FUNÇÕES EM C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA Definição
Leia maisO vetor é provavelmente um dos mais simples e importantes tipos agregados. Através do seu uso, podemos
Cláudio C. Rodrigues Faculdade da Computação -UFU LINGUAGEM C 04: VETORES, STRINGS E MATRIZES Faculdade da Computação - UFU 1 Introdução & Objetivo O vetor é provavelmente um dos mais simples e importantes
Leia maisLinguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação
Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada
Leia maisAlgoritmos 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 maisIntrodução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for
Leia maisIntrodução à Programação Orientada a Objetos em C++
Introdução à Programação Orientada a Objetos em C++ Disciplina de Programação Científica II Aula 12 de 18 24/05/2013 Professor Giovani Gracioli giovanig@gmail.com Objetivos Os objetivos dessa aula são:
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 mais1) Operadores de auto incremento ++ e auto decremento --
Aula 09 - Operadores de auto incremento e auto decremento, atribuição múltipla, atribuição na declaração, atribuição resumida e algumas regras de boa programação. 1) Operadores de auto incremento ++ e
Leia maisUnidade 5: Introdução à Programação com C/C++
Lógica de Programação para Engenharia 1 Unidade 5: Introdução à Programação com C/C++ Prof. Daniel Caetano Objetivo: Explicitar os elementos básicos envolvidos na programação com a linguagem C/C++. Bibliografia:
Leia mais1ª Lista de Exercícios
Universidade Federal do Rio de Janeiro Data: 26/04/05 Disciplina: Computação I 1ª Lista de Exercícios 1) Faça um programa, em pseudo-código, que peça ao usuário que informe n números reais e então calcule
Leia maisIntrodução à Programação em C (I)
Introdução à Programação em C (I) IAED Tagus, 2009/2010 Organização de Ficheiros em C Organização Típica de Ficheiros em C Inclusão de bibliotecas de sistema Inclusão de bibliotecas locais Definição de
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:
Leia maisProgramando em Assembly
Programando em Assembly precisa-se saber exatamente como interpretar & gerenciar a memória e como usar instruções de baixo nível para o processamento Não existem tipos e variáveis (apenas bytes na memória)
Leia maisAs funções são blocos de instruções que facilitam o entendimento do código. Sua sintaxe é:
Linguagem C-Funções Objetivos No primeiro capítulo foi dito que um programa em C pode ser composto de uma ou mais funções, sendo que a única obrigatória é main (). Agora, estudaremos como utilizar outras
Leia maisMC102 Algoritmos e Programação de Computadores
MC102 Algoritmos e Programação de Computadores Instituto de Computação UNICAMP Primeiro Semestre de 2014 Roteiro 1 Maior número 2 Soma de n números 3 Fatorial 4 Máximo Divisor Comum (MDC) 5 Números primos
Leia maisProgramação II. Introdução à Linguagem C
Programação II Introdução à Linguagem C Um Pouco da História da Linguagem C Origem: década de 70 (Dennis Ritchie) BCPL B C. Prover acesso de baixo nível ao hardware (CPU, I/Os e periféricos) e se entender
Leia maisLinguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador
Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor
Leia maisModularização: Funções em C
Modularização: Funções em C Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan Muitas vezes um problema grande pode ser resolvido mais facilmente se for dividido em pequenas partes. Tratar
Leia maisRecursividade UFOP 1/48
BCC 201 - Introdução à Programação I Recursividade Guillermo Cámara-Chávez UFOP 1/48 Introdução I Recursividade: é um método de programação no qual uma função pode chamar a si mesma Muitas estruturas têm
Leia maisLinguagem de Programação
Linguagem de Programação aula 4 Engenharia Elétrica e Engenharia de Automação Introdução à Computação 1.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) Programas Programas são seqüências de instruções
Leia maisConteúdo programático
Introdução à Linguagem C Conteúdo programático Introdução à Linguagem C Estrutura de Programas Variáveis, Constantes Operadores, Entrada e Saída de Dados Estruturas de Desvio Estrutura de Múltipla Escolha
Leia maisMatrizes. DCC 119 Algoritmos
Matrizes DCC 119 Algoritmos Matrizes: vetores multidimensionais Assim como os vetores, as matrizes são estruturas de dados homogêneas. Podem ser construídas dos diversos tipos básicos primitivos (real,
Leia maisProgramas Interativos
Programação Funcional DECOM UFOP 2012-1 Aula prática Capítulo 8 Prof. José Romildo Malaquias Programas Interativos Resumo Nesta aula pretende-se explorar construção de programas interativos usando ações
Leia maisTipos de Dados Simples
Programação 11543: Engenharia Informática 6638: Tecnologias e Sistemas de Informação Cap. 3 Tipos de Dados Simples Tipos de Dados Simples Objectivos: Hierarquia de tipos de dados Tipos de dados simples
Leia maisDicas para implementação do Trabalho 6
Dicas para implementação do Trabalho 6 1 Passo a passo para implementação do trabalho 1 Faça um exemplo que contemple todos os possíveis comandos que sua linguagem aceita. Um possível exemplo, faltando
Leia maisProgramação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009
Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009 Ao desenvolver os seguintes programas tenha em atenção o bom uso dos comentários, o uso da indentação e o correcto nome
Leia maisIntrodução à Linguagem C++
Introdução à Linguagem C++ C++: Definição C++ C A Linguagem de Programação C++ pode ser definida como uma extensão da Linguagem C; Todo código de programação em Linguagem C pode a priori ser compilado
Leia maisLaboratório de Programação. Prof. Oscar Luiz Monteiro de Farias fariasol@gmail.com
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias fariasol@gmail.com Ementa: Equivalente ao sumário do livro: The C Programming Language, Second edition. Autores: Brian W. Kernighan, Dennis
Leia maisVariáveis e constantes; Operadores e Tipos de Dados
Introdução à Programação (INF002) Variáveis e constantes; Operadores e Tipos de Dados 1º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) Variáveis e Constantes
Leia maisIntrodução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
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 maisObjectivos. Programação I (2010/2011) 2 o Trabalho de Programação
Programação I (2010/2011) 2 o Trabalho de Programação Introdução As progressões aritméticas e geométricas são exemplos de sucessões numéricas onde o elemento n + 1 depende do elemento n e de uma constante.
Leia maisLinguagens de Programação I
Linguagens de Programação I Tema # 8 Strings e Estruturas Susana M Iglesias 1 STRINGS - INTRODUÇÃO Strings (cadeia de caracteres): é uma serie de caracteres que podem ser tratados como uma unidade simples,
Leia maisElementos de Linguagem C
Elementos de Linguagem C Parte II Elementos de linguagem C Parte II 1 Macros O pré-processador da linguagem C suporta a substituição de macros, criadas com #define nome_macro texto de substituição As macros
Leia maisLinguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.
Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração
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 maisClasses e Objetos. Prof. Leonardo Barreto Campos 1
Classes e Objetos Prof. Leonardo Barreto Campos 1 Sumário Introdução; Escopo de Classe e Acesso a Membros de Classes; Exercício; Os Métodos get e set; Separação de Interface e Implementação; Construtores
Leia maisÉ usual respeitarem-se as seguintes convenções: Nome de uma classe começa por maiúscula (e.g. Solido)
P. Fazendeiro & P. Prata POO TP01 / 1 JAVA.Identificadores Não podem começar por um dígito Podem ser constituídos por combinações de letras (língua Inglesa), dígitos e os caracteres _ e $ É usual respeitarem-se
Leia maisArrays. 6.2 Arrays. 6.1 Introdução. Elementos de um array são como as variáveis normais que vocês já conhecem
1 2 Arrays.1 Introdução Array Vector Estrutura de elementos relacionados ( do mesmo tipo) Entidade estática tem sempre a mesma dimensão ao longo da execução do programa É um grupo de locais de memória
Leia maisEstrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas
Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas Estrutura de um Programa em Linguagem Algorítmica Nesse curso nós vamos utilizar a linguagem algorítmica para
Leia maisINTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO
INTRODUÇÃO À LINGUAGEM PASCAL CESAR BEZERRA TEIXEIRA,MSC PREFÁCIO A linguagem C foi desenvolvida no início da década de 70 por dois pesquisadores do Bell Laboratories, Brian Kernihgan e Dennis Ritchie,
Leia maisIntrodução à Linguagem C. Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny
Introdução à Linguagem C Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny 1 Histórico da Linguagem C Criada por Denis Ritchie, na década de 1970, para uso em um computador
Leia maisConceitos Básicos da Linguagem C++ Prof. Leonardo Barreto Campos 1
Conceitos Básicos da Linguagem C++ Prof. Leonardo Barreto Campos 1 Sumário As Origens da Linguagem C++; Primeiro Programa em C++; Declaração e Leitura de Variáveis; Estruturas de Seleção; if; switch; Estruturas
Leia mais2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10
1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...
Leia maisLinguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
Leia mais9 Classes Abstractas e Interfaces
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisCurso C: Ponteiros e Arrays
Universidade de Brasília Departamento de Ciência da Computação Curso C: Ponteiros e Arrays Prof. Ricardo Pezzuol Jacobi rjacobi@cic.unb.br Ponteiros um ponteiro Ž uma vari vel que contžm o endere o um
Leia maisControle de Fluxo. Laços e Desvios incondicionais
Controle de Fluxo Laços e Desvios incondicionais Laços Em C, há três comandos de ITERAÇÃO ou LAÇOS: for while do... while Estes permitem que um conjunto de instruções seja executado até que ocorra uma
Leia maisCapítulo 2: Introdução à Linguagem C
Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso
Leia maisUNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA DIM0320 Algoritmos e Programação de Computadores #VARIÁVEIS #TIPOS DE DADOS E L I EZ I O S O A R ES E L I EZ
Leia maisIntrodução. 17-out-08 Leandro Tonietto 2
Programação II Leandro Tonietto Algoritmos e Programação em C++ Curso de Segurança da Informação ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto/tsi/ica/programacao2.pdf out-08 Introdução O
Leia maisIntrodução a POO. Introdução a Linguagem C++ e POO
Introdução a POO Marcio Santi Linguagem C++ Introdução a Linguagem C++ e POO Programação Orientada a Objetos (POO) e C++ Recursos C++ não relacionados às classes Incompatibilidades entre C e C++ Classes
Leia maisPara cada programa, por mais simples que seja, comece sempre por esboçar a solução desenhando um fluxograma.
Instruções de Repetição Objetivo A realização deste trabalho deverá permitir ao aluno a familiarização com a utilização de instruções de repetição em C. Para o efeito será proposto um conjunto de exercícios
Leia mais