INTRODUÇÃO À LINGUAGEM C. Prof. Msc. Luis Filipe Alves Pereira 2015

Documentos relacionados
Curso de C. Declaração de Variáveis 18/3/ :48 1

Prof. A. G. Silva. 25 de abril de Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de / 68

Programação de Computadores II

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Programação Estruturada

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

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

Introdução à Linguagem C

ALGORITMOS E ESRUTRA DE DADOS I. Ponteiros Passagem por Valor e Referência Alocação de Memória

Introdução a Computação

Programação de Computadores II

Ponteiros e Tabelas. K&R: Capítulo 5

Prof. A. G. Silva. 04 de abril de Prof. A. G. Silva INE5231 Computação Científica I 04 de abril de / 90

Computação 2. Aula 7. Profª. Fabiany Ponteiros

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

Curso de C. Estruturas de Repetição 1/4/ :31 1

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Curso de C. Estruturas Condicionais

Programação: Vetores

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Conceitos básicos. Computação eletrônica: Gurvan Huiban

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

Arranjos. David Déharbe

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

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Algoritmos e Programação

Working 03 : Conceitos Básicos I

Introdução a Programação de Jogos

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

Programação de Computadores II

Linguagem C. Linguagem artificial e formal usada para comunicar instruções ao computador. Proposta por Dennis Ritchie entre 1969 e 1973.

Algoritmos e Programação

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

Estruturas condicionais

ENGENHARIA DE PRODUÇÃO PROGRAMAÇÃO Algoritmos Conceitos Iniciais. Prof. Luiz Fernando Laguardia Campos FMS

Programação de Computadores II Aula 03. Linguagem C I

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

Modularidade - Funções e Procedimentos

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

Linguagem C. André Tavares da Silva.

Legibilidade do código fonte

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

SSC304 Introdução à Programação Para Engenharias. Ponteiros. GE4 Bio

Linguagem C Princípios Básicos (parte 1)

Introdução à Programação Aula 07. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Prof. A. G. Silva. 21 de março de Prof. A. G. Silva INE5231 Computação Científica I 21 de março de / 76

Linguagem C. Ponteiros. Alex Vidigal Bastos.

Aula 18: Funções em C

Curso de Introdução à Liguagem de. Grupo PET-Tele. Universidade Federal Fluminense. July 16, 2012

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

Faculdade de Computação

Ponteiros. Baseado nos slides do Prof. Mauro.

Prova de Programação (21090) Data: 31 de Janeiro de 2008

Aula 03: Introdução a C

MC-102 Aula 21 Registros

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

PLANO DE UNIDADE DIDÁTICA- PUD

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estrutura do programa

Aula 14: Estruturas de Seleção e Controle em C

Curso de C. Estruturas de Repetição 29/03/ :18 1

Carlos Eduardo Batista. Centro de Informática - UFPB

Primeiros programas.

Linguagem C: Introdução

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Introdução à Programação C

Aula 1 Apresentação do Curso

SITUAÇÃO VETORES. Imagine o seguinte problema:

Introdução a Programação. Strings (Vetor de Caracteres)

Introdução à Lógica de Programação

Modularidade - Fun ções e Procedimentos

Introdução à Programação Estruturada Parte 3. Material da Prof. Ana Eliza

Linguagem de Programação C

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

INF 1007 Programação II

15/03/2018. Professor Ariel da Silva Dias Paradigma Imperativo

ECT1203 Linguagem de Programação

Estruturas de Dados Aula 6: Cadeias de 28/03/2010

Estruturas de Dados Aula 6: Cadeias de Caracteres

Laboratório de Introdução à Ciência da Computação I

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

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

ENGENHARIA DE PRODUÇÃO PROGRAMAÇÃO INTRODUÇÃO Estrutura de Seleção. Prof. Luiz Fernando Laguardia Campos FMS

Aula 8 Oficina de Programação Vetores. Profa. Elaine Faria UFU

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Aula 15: Vetores e Matrizes em C

Disciplina de Algoritmos e Programação

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

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

11 - Estrutura de um programa em C

11a. Aula Ponteiros e Vetores

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

Introdução à Programação em C

Índice Valor C A D E I A \0 memória

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

Transcrição:

INTRODUÇÃO À LINGUAGEM C Prof. Msc. Luis Filipe Alves Pereira 2015

INTRODUÇÃO À LINGUAGEM C 02/23 INTRODUÇÃO Criada em 1972 na AT&T Bell Labs É uma das linguagens mais populares. Existem poucas arquiteturas para as quais não existem compiladores para C. C é uma linguagem geral, compilada e de baixo nível (em relação à Python)

INTRODUÇÃO À LINGUAGEM C 03/23 ESTRUTURA BÁSICA Diretivas para o compilador Procedimento principal Instruções #include <stdio.h> //importando biblioteca de entrada e saída int main(int argc, char* argv[]){ printf("esse e o nosso primeiro programa!"); return 0; }

INTRODUÇÃO À LINGUAGEM C 04/23 VARIÁVEIS E MEMÓRIA Memória sequência de células com capacidade fixa. células identificadas por um código (endereço). valores pequenos ocupam uma única célula. valores grandes podem ocupar duas ou mais células Lembre-se da nossa primeira aula!! O computador apenas realiza duas operações: 1. Cálculos lógicos e algébricos 2. Lembra-se de cálculos realizados anteriormente acesso à memória (leitura e escrita) endereço valor 10 9 8 7-7 6 5 4 4222 3 2 1 0

INTRODUÇÃO À LINGUAGEM C 05/23 VARIÁVEIS E MEMÓRIA Variáveis abstração para endereços de memória rótulo simbólico para cada endereço endereço 8 valor 7 14 6 5 4 136 3 2 15 1 0 (antes) a b n s = a + b; d = s / n; (depois) endereço valor 8 10 7-7 6 5 150 4 136 3 2 15 1 0 d a s b n

INTRODUÇÃO À LINGUAGEM C 06/23 VARIÁVEIS E MEMÓRIA Variáveis possuem: nome (rótulo) tipo (domínio) valor (conteúdo) escopo (tempo de vida) Tipos: Escalar (tipos indivisíveis) Inteiro (int) Caractere (char) Enumerado (enum) Real (float, double) Ponteiro Não-Escalar (tipos formados pela composição de outros tipos

INTRODUÇÃO À LINGUAGEM C 07/23 VARIÁVEIS E MEMÓRIA Declaração de Variáveis: com valor inicial: domínio rótulo valor tipo nome = valor; int s = 10; sem valor inicial: domínio rótulo tipo nome; int s; Ao contrário de Python, as variáveis precisam ser declaradas em C. Ao declarar uma variável, informa-se ao compilador a quantidade de espaço que deverá ser reservado na memória para alocar aquele dado.

INTRODUÇÃO À LINGUAGEM C 08/23 ESCRITA E LEITURA NO CONSOLE Função printf() int a = 15; printf("primeira linha\n"); printf("segunda linha com um valor inteiro: %d",a); Função scanf() int valor1, valor2; printf("digite dois valore: \n"); scanf("%d %d", &valor1, &valor2); printf("voce digitou %d e %d",valor1,valor2);

INTRODUÇÃO À LINGUAGEM C 09/23 EXEMPLO Atribuições e operações algébricas possuem sintaxe semelhantes as de Python: #include <stdio.h> int main(int argc, char* argv[]) { int horas, minutos, segundos; int total_segundos; printf("digite o intervalo de tempo (segundos): "); scanf("%d", &total_segundos); horas = (total_segundos / 60) / 60; minutos = (total_segundos / 60) % 60; segundos = total_segundos % 60; } printf("\n"); printf("total de segundos: %d \n", total_segundos); printf("tempo: %d:%d:%d\n", horas, minutos, segundos); return 0;

INTRODUÇÃO À LINGUAGEM C 10/23 ESTRUTURAS CONDICIONAIS Operadores lógicos && and or! not if(idade>=18){ printf("voce ja pode obter habilitacao"); } else { printf("espere mais um pouco"); }

INTRODUÇÃO À LINGUAGEM C 11/23 ESTRUTURAS DE REPETIÇÃO sintaxe comando while int soma = 0; int numero = 5; while(numero > 0){ soma = soma + numero; numero = numero - 1; } printf("a soma dos valores e: %d",soma);

INTRODUÇÃO À LINGUAGEM C 12/23 ESTRUTURAS DE REPETIÇÃO sintaxe comando for int soma = 0; int numero; for(numero = 0; numero <= 5; numero++){ soma = soma + numero; } printf("a soma dos valores e %d",soma); atalho original numero++ numero = numero + 1 numero-- numero = numero - 1 numero*=10 numero = numero*10 numero+=3 numero = numero + 3 numero/=4 numero = numero / 4

INTRODUÇÃO À LINGUAGEM C 13/23 VETORES Sequência de valores do mesmo tipo Acesso por índice, tamanho fixo Alocados sequencialmente em memória Declaração do vetor: tipo rótulo tamanho int meuvetor[10]; Declaração com conteúdo inicial: int meuvetor[5] = {1,2,3,4,5}; int v[10] v[0] v[1] v[2] v[3] v[4] v[5] v[6] v[7] v[8] v[9]

INTRODUÇÃO À LINGUAGEM C 14/23 VETORES Acessando o vetor: vetor[5] = 3 vetor[0] = vetor[1] + vetor[2] Exemplo: o que o código abaixo deve imprimir? int meuvetor[100]; int indice; for(indice = 0; indice < 100; indice++){ printf("meuvetor[%d] = %d\n",indice,meuvetor[indice]); }

INTRODUÇÃO À LINGUAGEM C 15/23 VETORES vetores de tamanho variável: a solução simples. int valores[100]; int numero_elementos; Limite de tamanho que poderá ser usado Tamanho efetivamente utilizado código exemplo: printf("qual o tamanho do vetor? (máximo 100)\n"); scanf("%d", &numero_elementos); printf("escreva os números: \n"); for (i=0; i < numero_elementos; i++){ scanf("%d",&valores[i]); }

INTRODUÇÃO À LINGUAGEM C 16/23 VETORES DE CARACTERES Caracteres individuais: a, A, 7,... (aspas simples) Sequência de caracteres: Introdução à Programação (aspas duplas) Vetor de caracteres cada caractere do texto é um elemento do vetor a sequência de caracteres acaba com o caractere nulo \0 char[16] H E L L O W O R L D! \0 Em Python, o tipo str abstrai os detalhes de implementação de um vetor de caracteres.

INTRODUÇÃO À LINGUAGEM C 17/23 VETORES DE CARACTERES Declaração de vetor de caracteres: Tamanho máximo do vetor char texto[50]; Declaração e inicialização do vetor de caracteres: char texto[50] = Chico Buarque de Holanda ; Código exemplo: char texto[50] = "Chico Buarque de Holanda"; printf("texto original: %s\n", texto); scanf("%s", texto); printf("novo texto: %s", texto);

INTRODUÇÃO À LINGUAGEM C 18/23 VETORES DE CARACTERES Atribuir à uma variável tipo texto: char texto[50];... texto = Vinicius de Moraes ; ERRADO #include <string.h>... strcpy(texto, Vinicius de Moraes ); CORRETO

INTRODUÇÃO À LINGUAGEM C 19/23 FUNÇÕES Estrutura para definição de novas funções tipo nome( parâmetros ){ declarações instruções return valor; } Código exemplo: int maximo(int a, int b){ if(a>b){ return a; } else { return b; } } int main(int argc, char* argv[]) { } printf("maximo de 8 e 10: %d", maximo(8,10)); return 0;

INTRODUÇÃO À LINGUAGEM C 20/23 PONTEIROS Variáveis que armazenam um endereço de memória Ponteiro p no endereço 5012 com o conteúdo 5036 Inteiro s no endereço 5036 com o conteúdo 4 p s endereço valor 5000 5004 5008 5012 5036 5016 5020 5024 5028 5032 5036 4 5040

INTRODUÇÃO À LINGUAGEM C 21/23 PONTEIROS Declarando ponteiros: tipo *nome; código exemplo: int *p; p é uma variável que contém o endereço de outra variável do tipo inteiro Operador &: retorna o endereço da variável float x = -1.0; y = 10.0; float *p; p = &x;

INTRODUÇÃO À LINGUAGEM C 22/23 PONTEIROS Operador *: (se no lado direito de uma atribuição) retorna o conteúdo do endereço apontado. float x = -1.0; y = 10.0; float *p; p = &x; y = (*p)+5.0;

INTRODUÇÃO À LINGUAGEM C 23/23 LEMBRE-SE...