Políticas Curso de aprofundamento em linguagem C.

Slides:



Advertisements
Apresentações semelhantes
Funções em C Prof. Fabiano Utiyama.
Advertisements

Curso de aprofundamento na linguagem C
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN
Programação II Estruturas de Dados
Algoritmos e Estrutura de Dados I
Conteúdo: - Modularização.
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.
Alocação Dinâmica de Memória
Modificadores de tipos e Arquivos
LPG - I: Alocação Dinâmica de Memória - Ponteiros
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Universidade de Brasília
Fundamentos de Programação 1
Ponteiros.
Listas Encadeadas.
Revisão da Linguagem C.
Linguagem técnica de programação I Java – REVISÃO
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
Ponteiros Variáveis do tipo “ponteiro” armazenam endereços de memória
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula prática 8 Ponteiros Monitoria de Introdução à Programação.
Curso de Nivelamento LCG
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Linguagem de Programação II Parte IX
Conceitos de Linguagem de Programação
Definição de Tipos Estruturas e Ponteiros
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.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Paradigmas e Ferramentas de Desenvolvimento de Software – Revisão da linguagem C++ Lúbia Vinhas DPI - INPE.
Classes, Objetos, Atributos e Métodos JAVA
Algoritmos e Estruturas de Dados I – Ponteiros
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Capítulo VIII Ambientes de Execução
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Aula P.02 – BCC202 Revisão sobre Ponteiros Túlio Toffolo
Modularização Dividir um problema em subproblemas Módulos menores facilita a depuração Dividir o desenvolvimento entre vários programadores “Reutilização”
1 Alocação Dinâmica Quando se declara arrays o tamanho deve ser fixo e definido primeiramente –Alocação estática Pode-se alocar dinamicamente o espaço.
Programação Orientada a Objetos - Java
MSc. Marcelo Torres – professortorres.com.br. Linguagem de Programação 01 - Introdução à Linguagem C MSc. Marcelo Torres – professortorres.com.br.
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Algoritmos e Estruturas de Dados
Aula Prática 3 Funções Monitoria Introdução à Programação.
Joaquim José Hangalo  Podemos entender a memória do computador como um conjunto de células que armazenam informações.  Cada célula.
Aula prática 3 Aprofundando em Funções Parâmetros de uma função Uso do return Execução Variáveis Global, local e estática Monitoria de Introduçã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.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Aula Prática 3 Funções Monitoria Introdução à Programação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
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
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Ponteiros em C Prof. Kariston Pereira
Estrutura de Dados Revisão Professor Luiz José Hoffmann Filho
Linguagem de Programação
COMPILADORES 07 Prof. Marcos.
Programação em C Aula 9.
ponteiros Estrutura de Dados Prof. André Cypriano M. Costa
Alocação Dinâmica Dilvan Moreira. Objetivos  Entender o que são e como usar:  Gerenciamento de Memória  Alocação Dinâmica em C.
Alocação Dinâmica de Memória e Tipo Abstrato de Dados Cristiano Arbex Valle Vinicius Fernandes dos Santos
Jean Carlo Mendes
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Transcrição da apresentação:

Políticas Curso de aprofundamento em linguagem C

Políticas de Programação Evitam erros comuns Ajudam no debug Menos tempo procurando um bug Redução de erros de runtime Podem tornar o código mais legível, eficiente e econômico

Passagem de Parâmetros Sempre const A não ser que sejam modificados Exceção para os tipos built-in (int, float, char...) Aplicar const preferencialmente a arrays e ponteiros Passagem de parâmetro do tipo struct deve ser feita preferencialmente através de ponteiros

Ponteiros Local de maior incidência de erros de runtime Alteração indevida, ou acesso a memória alheia leva a um comportamento não previsto. (ERRO!) Usar const na declaração sempre que possível const em arrays ou structs são aplicados a todos os membros

Ponteiros O const pode ser aplicado de várias formas a um ponteiro const char *str; char *const str; const char *const str; const char *const *const strList; Deve ser SEMPRE inicializado Se não houver valor inicial atribuir NULL

Variáveis Globais Comunicação de Threads Devem ser evitadas ao máximo Substituir globais por parâmetros da função que a referencia Quando for necessária a utilização proceder com as devidas declarações no módulo associado

Variáveis Globais Quando utilizada para comunicar processos lembrar de restringir o acesso concorrente Através de semáforos Se for usada dentro de laços declarar como volatile

Tempo de vida de Variáveis Classes de armazenamento Automático Tempo de vida resumido ao escopo da variável Estático Tempo de vida: duração do programa Armazenamento em Heap Tempo limite de vida determinado pelo programador

Tempo de vida de Variáveis Erros comuns Referenciar variáveis locais fora de seu escopo Atribuição de ponteiros que não tiveram sua memória liberada (resulta em memory leak) Como resolver? Variáveis que devem ser vistas fora de seu escopo devem ser alocadas na heap, e depois devidamente desalocadas Testar se os ponteiros apontam para um endereço válido (!NULL) e utilizar o free antes de qualquer atribuição

Tratamento de erros em C Compromisso com a eficiência Tratamento específico de erros é importante Como fazer o tratamento de erros? Através de códigos de erro Definidos como int ou byte (eficiência) Valores definidos como constantes

Tratamento de erros em C Transformação da função de acordo com o padrão de tratamento de erros Retorno vira parâmetro de saída Assumir que esses parâmetros estão devidamente alocados Parâmetros de saída são sempre ponteiros

Tratamento de erros em C Legibilidade no tratamento Padrões Se houver apenas um erro, a função retorna 0 (FALSE) quando ele ocorre e 1 (TRUE) quando não há erros Se existirem mais de um erro, 0 deve significar que tudo ocorreu normalmente, e os códigos de erro são distribuídos com os demais números (positivos) Definir Constantes de erro com nome legível e que referenciem a função.

Comando assert Serve para utilizar como sanity check Debug temporário Teste de situações que sempre deveriam ocorrer Caso não queira mais utilizá-los por questões de eficiência (release) pode ser desabilitado Definição Macro NDEBUG