A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:"— Transcrição da apresentação:

1 C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva E-mail/msn: alms@ufs.br Página: www.dsi.ufs.br

2 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

3 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.

4 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.

5 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

6 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)

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

8 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;

9 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)

10 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.

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

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

13 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.

14 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

15 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..

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

17 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;

18 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

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

20 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.

21 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.

22 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.

23 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

24 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.

25 Referências The C Library Reference Guide http://www.acm.uiuc.edu/webmonkeys/book/c_guid e/ http://www.acm.uiuc.edu/webmonkeys/book/c_guid e/


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

Apresentações semelhantes


Anúncios Google