C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Algoritmo e Programação
Construção de Algoritmos AULA 07
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN
Programação II Estruturas de Dados
Programação II Estruturas de Dados
Programação para Engenharia I
Algoritmos e Estrutura de Dados I
Programação Básica em Java
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
Pesquisa em Memória Primária
Pesquisa em Memória Primária
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
LPG - I: Alocação Dinâmica de Memória - Ponteiros
Ponteiros em C.
LPG-I: Tipos Complexos - Estruturas
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo
Universidade Federal do Espírito Santo
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Linguagem C Strings.
Revisão da Linguagem C.
Classes e objetos Arrays e Sobrecarga
Vamos agora aprender a utilizar estruturas.
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
JAVA: Conceitos Iniciais
Introdução a Computação e Cálculo Numérico
Introdução a Computação e Cálculo Numérico
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 13 Orientação a Objetos – C++ Parte 1
Curso de Nivelamento LCG
1 Ponteiros Ponteiros são variáveis que guardam localizações em memória. A declaração de uma variável ponteiro x para um dado tipo type é type *x; Essa.
Linguagem de Programação II Parte IX
Definição de Tipos Estruturas e Ponteiros
CADEIA DE CARACTERES (Strings)
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 05 Aquiles Burlamaqui UERN
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Programação I Aula 2 (Métodos)
Seminário 1: Revisão de C
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Prof. Ricardo Santos PONTEIROS
Curso de C/C++ Aula 2 Instrutor: Luiz Felipe Sotero
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Introdução à Linguagem C
Algumas notas sobre a linguagem de programação C
Programação Orientada a Objetos - Java
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Recursividade Profs. De Prog2 e Lab2.
Linguagem C.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Construção de Algoritmos AULA 05
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Programação Computacional Aula 9: Meu primeiro programa em C
Profa. Maria Augusta Constante Puget
Ponteiros em C Prof. Kariston Pereira
Estrutura de Dados Revisão Professor Luiz José Hoffmann Filho
Linguaguem de Programação II
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Array e ArrayList LPOO – 01/09/14.
Linguagem de Programação
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Transcrição da apresentação:

C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:

Agenda Introdução Compilando O método main Incluindo Arquivos Externos C/C++ e Java : Características Comuns Passagem de Parâmetros em Função Class/Struct Introdução ao uso de ponteiros Ponteiros para função Segunda Atividade

Introdução Veremos um pouco de C/C++ para utilizar no decorrer da disciplina. Lembrem-se que vocês já viram P1 e P2, a disciplina é S.O., não P3. O conhecimento da linguagem será extremamente necessária para as atividades. Lembrem-se que as atividades em dupla, valerão 30% da média final.

Histórico C desenvolvida em 1972 por Dennis Ritchie para ser usada com o Unix. Anos depois, Bjarne Stroustrup desenvolveu C++, o intuito era agregar O.O. a uma linguagem rápida e portável.

Vantagens e Usos Vantagens Eficiência Portabilidade de Código Habilidade para acessar endereços específicos do hardware. Demanda poucos recursos do Sistema. Usos Sistemas Operacionais Aplicações Embarcadas Aplicativos

Compilando... g++ [opções] [parâmetros] arquivos. Algumas [opções] úteis: -v (exibe detalhes de compilação). -o nome (Define o nome do arquivo de saída) -w (elimina as mensagens de alerta). -I/path (inclue as bibliotecas presentes no caminho especificado). -l pthread (inclue bibliotecas específicas)

Primeiro Programa C #include void main(){ printf(Hello World\n); } Abram o pico ou vi. exemplo_hello_world.c

O método main O método main é o ponto de execução de uma aplicação c++. Existem várias formas de se definir um método main, mas a forma mais comum é a seguinte: int main(int argc, char** argv){} Onde: Argc representa a quantidade de argumentos passados como entrada do programa Argv representa os argumentos passados como entrada do programa O valor de retorno inteiro, especificado pela função pode ser utilizado para sinalizar se a função realizou ou não suas operações com sucesso. exemplo_console;

Incluindo arquivos externos Para incluirmos arquivos externos ao nosso projeto basta utilizarmos a diretiva #include seguido do nome do arquivo. Devemos declarar #include no início de nosso programa. #include arquivo.h Observa apenas o diretório corrente. #include Observa as pastas especificadas através da diretiva -l (include)

Java e C/C++: Características Comuns Os operadores aritméticos, lógicos, relacionais, binários e de atribuição são iguais aos de java. Estruturas de controle (if e switch) possuem sintaxe igual a de Java. Estruturas de repetição (for, while, do...while) possuem sintaxe igual a de Java. Declaração de funções/métodos e variáveis possuem sintaxe igual a de Java.

Java e C/C++: Características Comuns Por hoje é só pessoal, vocês já sabem tudo :-)

Java e C/C++: Características Comuns exemplo_laco exemplo_funcao

Java e C/C++: Características Comuns Tipos Primitivos Vocês já o conhecem de java. São eles: int float double char //ascii boolean Primitivos novos: void* Menor unidade da linguagem, representa nenhum dado ou qualquer dado.

Passagem de parâmetros em função Passagem por valor. Parâmetros sem utilizar nenhum operador especial Exemplo: int getData(int id, int Data); Passagem por referência. Utiliza o operador & Exemplo: int getData(int& id, int& Data); Passagem por ponteiro. Funciona igual a passagem por referência. int getData(int* id, int* Data); exemplo_passagem_parametros

Struct e Classes Struct Coleção de variáveis referenciadas por um nome, fornecendo uma maneira conveniente de ter informações relacionadas e agrupadas. Em C++ ele dá suporte a métodos. Todos os seus membros são public por padrão. Classe Em C++ uma classe é um struct, cujos membros são private por padrão..

Struct/Classe Sintaxe struct/class { public: | private: | protected: tipo... tipo }

Introdução ao uso de ponteiros Um ponteiro é um tipo de variável especial que armazena endereços de memória. Através dele também podemos ter acesso ao conteúdo deste endereço. Sintaxe de definição de um ponteiro em C++ * ; Exemplo: char* caractere; unsigned* number;

Introdução ao uso de ponteiros Através de um ponteiro podemos: Apontar para variáveis ou objetos que declaramos em nosso programa (através do operador &). Apontar para um elemento alocado dinamicamente (através do operador new) exemplo_ponteiro

Introdução ao uso de ponteiros Para array a idéia é similar int *vPtr = v; int *vPtr = &v[ 0 ];

Introdução ao uso de ponteiros Para acessarmos o conteúdo armazenado por um endereço apontado por um ponteiro, utilizamos o operador (*). No exemplo anterior, teríamos: int andy = 25; int* tob = &andy; *tob // Recupera o valor 25.

Ponteiros void Ponteiros convencionais só podem apontar para o tipo que especificamos para ele. Os ponteiros void são ponteiros de propósito geral. Sintaxe: void* p; // Define o ponteiro p do tipo void*. exemplo_void.

Ponteiros para funções Em C também podemos criar ponteiro para funções. A idéia é simples: Como tudo está em memória, um ponteiro para função contém o endereço onde está declarada uma função.

Ponteiros para Funções Declarando um ponteiro para função. Seja a seguinte função: char* gets(char*); O ponteiro para a mesma é definido da seguinte forma: char* (*p) (char*); Cuidado com os parêntesis. Char** p (char*); // possue outro significado. exemplo_ponteiro_funcao

Segunda Atividade Para Quinta-Feira (03/set). – Deseja-se implementar, um algoritmo de ordenação genérico. Tal algoritmo realiza ordenação em ordem crescente e decrescente. O mesmo realiza ordenação de números e strings (lexográfica). – Com essas informações: Elaborem uma solução na qual eu tenho apenas uma única função ordena resolve os 4 casos. Ordena trabalha com um array de elementos e devolve esse array ordenado. Dica1* : Utilizar ponteiro para função. Dica2*: Ordena pode receber outros parâmetros.

Referências The C Library Reference Guide e/ e/