O documento fornece uma introdução à linguagem de programação C. Discute brevemente a história da linguagem C e como ela foi desenvolvida para rodar o sistema operacional UNIX. Também compara C a outras linguagens de programação e lista algumas aplicações conhecidas escritas em C.
Este documento fornece um resumo da linguagem de programação C. Apresenta seu contexto histórico, características, tipos de dados, estruturas de controle de fluxo e outras construções importantes da linguagem.
Este documento apresenta uma introdução à linguagem de programação C. Ele discute conceitos básicos como estrutura de um programa C, tipos de dados, entrada e saída de dados, operadores e estruturas de decisão. O documento também fornece exemplos de código C para ilustrar esses conceitos.
O documento introduz a linguagem de programação C, descrevendo brevemente sua história, características e aplicações. Foi desenvolvida em 1973 para o sistema operacional UNIX e padronizada em 1983. C oferece velocidade e portabilidade, combinando características de alto e baixo nível. É amplamente utilizada em sistemas operacionais, bancos de dados e efeitos especiais em filmes.
O documento discute vetores em Pascal, definindo-os como variáveis compostas unidimensionais onde cada elemento é acessado por um índice. Explica como declarar vetores, atribuir e acessar valores, e realizar operações como leitura, escrita e cálculos com elementos de vetores usando laços de repetição.
O documento introduz o conceito de Python como uma linguagem de programação interpretada e dinamicamente tipada. Apresenta alguns tópicos básicos como estruturas de dados como listas e dicionários, além de operadores e funções.
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
O documento apresenta os principais conceitos da linguagem C, incluindo estruturas de dados como vetores e matrizes, uso de ponteiros, funções e diretivas de compilação.
Aula 6 - Estruturas de seleção encadeada - parte 1Pacc UAB
O documento apresenta uma aula sobre estruturas de seleção encadeadas. Ele explica o que são estruturas de seleção encadeadas, sua sintaxe em Portugol e como resolvê-las. Dois exemplos de problemas são dados para exemplificar o uso de estruturas de seleção encadeadas, um para classificar o conceito de um aluno baseado em sua média e outro para identificar o tipo de um triângulo com base nas medidas de seus lados.
Neste slide iniciamos a programação em C, apresentando a sintaxe, o escopo inicial para iniciar a programação utilizando a ferramenta DevC++ [Aula para curso técnico]
Este documento fornece um resumo da linguagem de programação C. Apresenta seu contexto histórico, características, tipos de dados, estruturas de controle de fluxo e outras construções importantes da linguagem.
Este documento apresenta uma introdução à linguagem de programação C. Ele discute conceitos básicos como estrutura de um programa C, tipos de dados, entrada e saída de dados, operadores e estruturas de decisão. O documento também fornece exemplos de código C para ilustrar esses conceitos.
O documento introduz a linguagem de programação C, descrevendo brevemente sua história, características e aplicações. Foi desenvolvida em 1973 para o sistema operacional UNIX e padronizada em 1983. C oferece velocidade e portabilidade, combinando características de alto e baixo nível. É amplamente utilizada em sistemas operacionais, bancos de dados e efeitos especiais em filmes.
O documento discute vetores em Pascal, definindo-os como variáveis compostas unidimensionais onde cada elemento é acessado por um índice. Explica como declarar vetores, atribuir e acessar valores, e realizar operações como leitura, escrita e cálculos com elementos de vetores usando laços de repetição.
O documento introduz o conceito de Python como uma linguagem de programação interpretada e dinamicamente tipada. Apresenta alguns tópicos básicos como estruturas de dados como listas e dicionários, além de operadores e funções.
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
O documento apresenta os principais conceitos da linguagem C, incluindo estruturas de dados como vetores e matrizes, uso de ponteiros, funções e diretivas de compilação.
Aula 6 - Estruturas de seleção encadeada - parte 1Pacc UAB
O documento apresenta uma aula sobre estruturas de seleção encadeadas. Ele explica o que são estruturas de seleção encadeadas, sua sintaxe em Portugol e como resolvê-las. Dois exemplos de problemas são dados para exemplificar o uso de estruturas de seleção encadeadas, um para classificar o conceito de um aluno baseado em sua média e outro para identificar o tipo de um triângulo com base nas medidas de seus lados.
Neste slide iniciamos a programação em C, apresentando a sintaxe, o escopo inicial para iniciar a programação utilizando a ferramenta DevC++ [Aula para curso técnico]
O documento apresenta conceitos sobre arrays em C, incluindo: 1) arrays são estruturas de dados que armazenam itens do mesmo tipo; 2) arrays possuem tamanho fixo e elementos são acessados via índice; 3) arrays podem ser inicializados de forma explícita ou implícita. Exemplos demonstram operações comuns com arrays como inicialização, impressão e cálculos.
O documento discute funções e ponteiros na linguagem C. Explica como definir funções, escopo de variáveis, passagem de parâmetros, ponteiros e como modificar o comportamento de funções usando ponteiros. Apresenta exemplos de funções sem retorno, funções com retorno, variáveis locais, globais e parâmetros.
O documento discute estruturas condicionais em programação, incluindo estruturas "se...senão" e "escolha...caso". Exemplos demonstram como essas estruturas permitem que programas atendam a diferentes situações com base nos valores de variáveis, evitando a necessidade de vários algoritmos menores. Exercícios propostos ilustram como solicitar dados do usuário e tomar decisões com base nesses dados.
Matemática, Cálculo, Análise,Integrais, Linha, Vetor tangente, reta tangente, Integral de linha de campo escalar, Comprimento, Integral, linha, campo, vetorial, Campos, conservativos, Teorema de Green
Se quiser a fonte em LaTeX ofereço com todo o gosto: sandra.gaspar.martins@gmail.com
1. O documento apresenta 9 algoritmos para resolução de exercícios envolvendo vetores e matrizes usando laços de repetição. Os algoritmos copiam conteúdo entre vetores, somam vetores, fazem união de vetores, encontram maior e menor valor em vetor, somam matrizes e calculam soma de linhas de matriz.
Uma estrutura é uma coleção de uma ou mais variáveis, possivelmente de tipos diferentes, colocadas juntas sob um único nome para manipulação conveniente. Por exemplo, para representar um aluno são necessárias as informações nome, matrícula, conceito. Ao invés de criar três variáveis, é possível criar uma única variável contendo três campos. Em C/C++, usa-se a construção struct para representar esse tipo de dado.
O documento explica o que são ponteiros em C e como declará-los e utilizá-los. Os ponteiros armazenam endereços de memória e podem apontar para variáveis, arrays e estruturas. O documento também mostra como alocar e liberar memória dinamicamente usando funções como malloc(), free() e realloc().
P(A|F1) = 0,2, P(A|F2) = 0,05 e P(A|F3) = 0,02. F1, F2 e F3 formam uma partição do espaço amostral. Usando o Teorema de Bayes, calcula-se P(F1|A) = 0,4, ou seja, há 40% de chances da amostra adulterada ter vindo da fazenda F1.
O documento resume conceitos fundamentais sobre vetores, matrizes e funções (subrotinas) em linguagem de programação C, incluindo declaração, atribuição, preenchimento e impressão de vetores e matrizes, além de tipos de funções com e sem passagem de parâmetros e retorno de valores.
Apresentando a Linguagem de Programação PythonPriscila Mayumi
Slides para apresentação da linguagem Python. Trabalho para a matéria "Novas Tecnologias" na Universidade Metodista de São Paulo. Lembrando que eu tive que estudar muito sobre, pois nunca tive um contato "suficiente" com Python.
Este documento apresenta notas de aula sobre a disciplina Linguagens e Técnicas de Programação ministrada na FATEC de Santo André. O conteúdo programático aborda noções básicas de algoritmos, lógica de programação e introdução à linguagem C.
O documento apresenta um resumo de 3 frases ou menos sobre o tópico da aula:
1) A aula introduz a linguagem Python, discutindo suas características, instalação e primeiros programas;
2) Também são apresentados tipos de dados básicos, operadores, entrada e saída de dados, estruturas de controle de fluxo como if/else e loops;
3) Por fim, há exemplos mostrando como usar strings, documentação interativa e diferentes formas de laços como for e while.
1) O documento discute seqüências e séries numéricas, definindo seqüências, apresentando exemplos e propriedades como convergência e monotonicidade.
2) Uma seqüência é uma função que associa números naturais a números reais. Exemplos incluem seqüências com termos definidos por fórmulas ou recorrência.
3) Uma seqüência converge se seu limite quando n tende ao infinito existe e é um número real finito. Caso contrário, diverge. Teoremas caracterizam convergência ou divergência.
O documento discute estruturas de repetição em algoritmos, apresentando exemplos de laços while, do-while, for, até e repita. É explicado que estas estruturas permitem executar um conjunto de instruções múltiplas vezes até que uma condição seja satisfeita. Dois exercícios sobre este tema são propostos no final.
O documento discute lógica de programação e algoritmos, definindo-os como sequências lógicas de passos para resolver problemas. Também aborda representações de algoritmos como pseudocódigo e diagramas de blocos, e técnicas como teste de mesa para validar algoritmos.
O documento discute conceitos fundamentais de bases de dados, incluindo: (1) definições de bases de dados relacionais e seus usos; (2) a distinção entre dados e informação; (3) os processos de modelagem de dados, incluindo a criação de modelos conceituais e lógicos de dados. (4) O modelo relacional de dados é explicado, com ênfase nas tabelas, chaves primárias e estrangeiras.
O documento apresenta uma introdução sobre linguagens de programação, abordando seus principais conceitos, histórico, relação com disciplinas do curso de Ciência da Computação e oportunidades no mercado de trabalho.
O documento descreve a história e características da linguagem de programação Python. Começa explicando que as linguagens de programação surgiram antes dos computadores e evoluíram para permitir a comunicação entre humanos e máquinas. Em seguida, detalha a criação do Python em 1991, seu código aberto e comunitário, e características como ser de alto nível, interpretada e multiplataforma.
O documento apresenta uma introdução à linguagem de programação C ministrada pelo professor Mauro Jansen. Apresenta o histórico, características e estrutura básica da linguagem C, além de conceitos como pré-processador, tipos de dados, variáveis, operadores, estruturas de controle e exemplos de programação.
O documento apresenta uma introdução à linguagem de programação C, abordando seus principais conceitos como variáveis, tipos de dados, operadores, funções printf() e scanf(), entre outros. Em 3 frases: O documento fornece uma visão geral da sintaxe da linguagem C, apresentando seus elementos básicos como declaração de variáveis, tipos de dados, funções de entrada e saída e operadores aritméticos.
O documento apresenta conceitos sobre arrays em C, incluindo: 1) arrays são estruturas de dados que armazenam itens do mesmo tipo; 2) arrays possuem tamanho fixo e elementos são acessados via índice; 3) arrays podem ser inicializados de forma explícita ou implícita. Exemplos demonstram operações comuns com arrays como inicialização, impressão e cálculos.
O documento discute funções e ponteiros na linguagem C. Explica como definir funções, escopo de variáveis, passagem de parâmetros, ponteiros e como modificar o comportamento de funções usando ponteiros. Apresenta exemplos de funções sem retorno, funções com retorno, variáveis locais, globais e parâmetros.
O documento discute estruturas condicionais em programação, incluindo estruturas "se...senão" e "escolha...caso". Exemplos demonstram como essas estruturas permitem que programas atendam a diferentes situações com base nos valores de variáveis, evitando a necessidade de vários algoritmos menores. Exercícios propostos ilustram como solicitar dados do usuário e tomar decisões com base nesses dados.
Matemática, Cálculo, Análise,Integrais, Linha, Vetor tangente, reta tangente, Integral de linha de campo escalar, Comprimento, Integral, linha, campo, vetorial, Campos, conservativos, Teorema de Green
Se quiser a fonte em LaTeX ofereço com todo o gosto: sandra.gaspar.martins@gmail.com
1. O documento apresenta 9 algoritmos para resolução de exercícios envolvendo vetores e matrizes usando laços de repetição. Os algoritmos copiam conteúdo entre vetores, somam vetores, fazem união de vetores, encontram maior e menor valor em vetor, somam matrizes e calculam soma de linhas de matriz.
Uma estrutura é uma coleção de uma ou mais variáveis, possivelmente de tipos diferentes, colocadas juntas sob um único nome para manipulação conveniente. Por exemplo, para representar um aluno são necessárias as informações nome, matrícula, conceito. Ao invés de criar três variáveis, é possível criar uma única variável contendo três campos. Em C/C++, usa-se a construção struct para representar esse tipo de dado.
O documento explica o que são ponteiros em C e como declará-los e utilizá-los. Os ponteiros armazenam endereços de memória e podem apontar para variáveis, arrays e estruturas. O documento também mostra como alocar e liberar memória dinamicamente usando funções como malloc(), free() e realloc().
P(A|F1) = 0,2, P(A|F2) = 0,05 e P(A|F3) = 0,02. F1, F2 e F3 formam uma partição do espaço amostral. Usando o Teorema de Bayes, calcula-se P(F1|A) = 0,4, ou seja, há 40% de chances da amostra adulterada ter vindo da fazenda F1.
O documento resume conceitos fundamentais sobre vetores, matrizes e funções (subrotinas) em linguagem de programação C, incluindo declaração, atribuição, preenchimento e impressão de vetores e matrizes, além de tipos de funções com e sem passagem de parâmetros e retorno de valores.
Apresentando a Linguagem de Programação PythonPriscila Mayumi
Slides para apresentação da linguagem Python. Trabalho para a matéria "Novas Tecnologias" na Universidade Metodista de São Paulo. Lembrando que eu tive que estudar muito sobre, pois nunca tive um contato "suficiente" com Python.
Este documento apresenta notas de aula sobre a disciplina Linguagens e Técnicas de Programação ministrada na FATEC de Santo André. O conteúdo programático aborda noções básicas de algoritmos, lógica de programação e introdução à linguagem C.
O documento apresenta um resumo de 3 frases ou menos sobre o tópico da aula:
1) A aula introduz a linguagem Python, discutindo suas características, instalação e primeiros programas;
2) Também são apresentados tipos de dados básicos, operadores, entrada e saída de dados, estruturas de controle de fluxo como if/else e loops;
3) Por fim, há exemplos mostrando como usar strings, documentação interativa e diferentes formas de laços como for e while.
1) O documento discute seqüências e séries numéricas, definindo seqüências, apresentando exemplos e propriedades como convergência e monotonicidade.
2) Uma seqüência é uma função que associa números naturais a números reais. Exemplos incluem seqüências com termos definidos por fórmulas ou recorrência.
3) Uma seqüência converge se seu limite quando n tende ao infinito existe e é um número real finito. Caso contrário, diverge. Teoremas caracterizam convergência ou divergência.
O documento discute estruturas de repetição em algoritmos, apresentando exemplos de laços while, do-while, for, até e repita. É explicado que estas estruturas permitem executar um conjunto de instruções múltiplas vezes até que uma condição seja satisfeita. Dois exercícios sobre este tema são propostos no final.
O documento discute lógica de programação e algoritmos, definindo-os como sequências lógicas de passos para resolver problemas. Também aborda representações de algoritmos como pseudocódigo e diagramas de blocos, e técnicas como teste de mesa para validar algoritmos.
O documento discute conceitos fundamentais de bases de dados, incluindo: (1) definições de bases de dados relacionais e seus usos; (2) a distinção entre dados e informação; (3) os processos de modelagem de dados, incluindo a criação de modelos conceituais e lógicos de dados. (4) O modelo relacional de dados é explicado, com ênfase nas tabelas, chaves primárias e estrangeiras.
O documento apresenta uma introdução sobre linguagens de programação, abordando seus principais conceitos, histórico, relação com disciplinas do curso de Ciência da Computação e oportunidades no mercado de trabalho.
O documento descreve a história e características da linguagem de programação Python. Começa explicando que as linguagens de programação surgiram antes dos computadores e evoluíram para permitir a comunicação entre humanos e máquinas. Em seguida, detalha a criação do Python em 1991, seu código aberto e comunitário, e características como ser de alto nível, interpretada e multiplataforma.
O documento apresenta uma introdução à linguagem de programação C ministrada pelo professor Mauro Jansen. Apresenta o histórico, características e estrutura básica da linguagem C, além de conceitos como pré-processador, tipos de dados, variáveis, operadores, estruturas de controle e exemplos de programação.
O documento apresenta uma introdução à linguagem de programação C, abordando seus principais conceitos como variáveis, tipos de dados, operadores, funções printf() e scanf(), entre outros. Em 3 frases: O documento fornece uma visão geral da sintaxe da linguagem C, apresentando seus elementos básicos como declaração de variáveis, tipos de dados, funções de entrada e saída e operadores aritméticos.
Curso Completo de Linguagem de Programação CJoberthSilva
O documento fornece uma introdução à linguagem de programação C, abordando tópicos como:
1) Breve histórico da linguagem C e suas características;
2) Estrutura básica de um programa C, incluindo variáveis, tipos de dados e instruções de entrada e saída;
3) Operadores aritméticos e lógicos, além de estruturas de decisão e repetição.
O documento apresenta uma introdução à linguagem de programação C, abordando sua história, estrutura, tipos de dados, operadores, entrada e saída de dados. Explica como C foi criada e evoluiu de outras linguagens, além de características como programação estruturada, compilação versus interpretação, e a estrutura básica de um programa C.
1. A linguagem C é amplamente utilizada no meio acadêmico para desenvolvimento de pesquisas científicas e como instrumento de aprendizado.
2. O documento apresenta os principais elementos da linguagem C, incluindo sintaxe, variáveis, operadores, comandos de entrada e saída e estruturas condicionais e de repetição.
3. É uma introdução completa aos fundamentos da linguagem C para iniciantes.
O documento resume as principais características da linguagem de programação C, incluindo sua estrutura, sintaxe, bibliotecas, funções e palavras reservadas. É definida como uma linguagem de propósito geral projetada para programação estruturada que possui facilidade de uso e geração de código eficiente.
1) O documento apresenta os conceitos básicos da linguagem C, incluindo sua história, características, tipos de variáveis, funções de entrada e saída, e estruturas de decisão.
2) São explicados conceitos como variáveis inteiras e reais, funções scanf e printf, e operadores relacionais e lógicos para testes e condições.
3) O documento serve como uma introdução abrangente aos fundamentos da programação em C.
O documento descreve:
1) A estrutura básica de um programa em C, incluindo diretivas de compilação, definições de tipos, protótipos de funções e o programa principal.
2) Os principais tipos de dados em C, como inteiros, caracteres, pontos flutuantes e suas especificações.
3) Os operadores básicos em C, incluindo atribuição, aritméticos, relacionais, incremento/decremento e lógicos.
O documento descreve:
1) A estrutura básica de um programa em C, incluindo diretivas de compilação, definições de tipos, protótipos de funções e o programa principal.
2) Os principais tipos de dados em C, como inteiros, caracteres, pontos flutuantes e suas especificações.
3) Os operadores aritméticos, relacionais, lógicos e de atribuição em C.
Adicionar mais informações (descrição, tags, categoria) torna mais fácil para os outros encontrar seu conteúdo. A pontuação aumenta conforme você adiciona cada item.
Algoritmo e programação jejjehshjwnv.pptxCanaldoOssufo
Algoritmia e prigraghwhhhwwnebe kwnwbhwuwuwhwvw uwuwjjwjwjwjwuwgvwhwjwjwugheueuehbehehhwiwiwijwjwjjwjwjjejejejjejjejejejjejejejejjejejejjwjwjjwjjwjwjwj
Microprocessadores ii revisão de linguagem de programação (parte2)Mauro Pereira
O documento apresenta uma introdução à linguagem de programação C ministrada pelo professor Mauro Jansen. Ele discute o histórico da linguagem, suas principais características como ser case sensitive e de tipagem fraca, e conceitos básicos como tipos de dados, variáveis, operadores, estruturas de controle e a estrutura básica de um programa em C.
Algoritmos e LP - Aula 08 - Linguagem C - p1.pdfEnio Filho
O documento apresenta uma aula sobre a linguagem C. Aborda tópicos como analisar códigos em C, declarar variáveis, entradas e saídas, controle de fluxo e estruturas de repetição. Explica conceitos básicos como variáveis, operadores e funções de entrada e saída.
O documento apresenta um resumo sobre a linguagem de programação C, abordando tópicos como sua história, características, tipos de dados, variáveis, constantes, operadores e instruções de entrada e saída.
O documento apresenta uma introdução à linguagem de programação C, descrevendo suas origens, características e estruturas básicas como variáveis, operadores, funções printf e scanf, e comandos de controle como if, else, while e for.
O documento discute a linguagem de programação C, incluindo sua história, aplicações comuns, palavras-chave, tipos de dados, variáveis, constantes, funções de entrada e saída, e o processo de desenvolvimento de programas em C.
O documento apresenta os principais conceitos da linguagem de programação C, incluindo variáveis e tipos de dados, operadores, entrada e saída, e como estruturar programas básicos em C.
O documento apresenta uma introdução aos conceitos básicos de programação em linguagem C, incluindo: 1) a função printf() para saída de dados; 2) a função scanf() para entrada de dados; e 3) operadores aritméticos e incremento/decremento.
2. Introdução Linguagem C
Breve Histórico
Em 1973 Dennis Ritchie reescreveu o sistema
operacional UNIX em uma linguagem de alto
nível (Ling. C).
Surgem diversas implementações utilizando C,
porém os códigos gerados eram incompatíveis.
ANSI (American National Standard Institute),
em 1983 padronizou a ling. C.
3. Introdução Linguagem C
C comparado a outras
linguagens
Devemos entender Nível Alto como sendo a
capacidade da linguagem em compreender
instruções escritas em “dialetos” próximos do inglês
(Ada e Pascal, por exemplo) e Nível Baixo para
aquelas linguagens que se aproximam do assembly,
que é a linguagem própria da máquina, compostas
por instruções binárias e outras incompreensíveis
para o ser humano não treinado para este propósito.
Infelizmente, quanto mais clara uma linguagem for
para o humano (simplicidade >) mais obscura o será
para a máquina (velocidade <).
4. Introdução Linguagem C
C comparado a outras
linguagens
Nível Baixo Nível Médio Nível Alto
Velocidade
Clareza
Assembler C
COBOL
Basic Pascal Ada
Modula -2
5. Introdução Linguagem C
Aplicações escritas em C
Sistema Operacional: UNIX
Planilhas: 1,2,3 e Excel
Banco de Dados: dBase III, IV e Access
( gerenciador de base de dados).
Aplicações Gráficas: Efeitos Especiais de
filmes como Star Trek e Star War.
6. Introdução Linguagem C
Características da Linguagem C
Portabilidade entre máquinas e sistemas
operacionais.
Alia características de linguagens de alto e
baixo nível (liberdade ao programador).
Programas Estruturados.
Total interação com o Sistema Operacional.
Código compacto e rápido, quando comparado
ao código de outras linguagem de
complexidade análoga.
7. Introdução Linguagem C
Características da Linguagem C
C é uma linguagem compilada: lê todo
o código fonte e gera o código objeto
(ling. de máquina) uma única vez.
Linguagens Interpretadas: lê o código
fonte, traduz e executa cada vez que o
programa for executado.
8. Introdução Linguagem C
Detalhes Importantes
Sempre que o código fonte for alterado
ele deve ser novamente compilado.
C é “case senitive”
Deve-se listar antecipadamente todas a
as variáveis utilizadas no programa.
9. Introdução Linguagem C
Palavras reservadas
São palavras que têm um significado
especial para a linguagem.
auto, break, case, if, for, while, begin, end,
continue, return, const,....
C entende tais palavras apenas em
letras minúsculas
10. Introdução Linguagem C
Bibliotecas
Conjunto de funções para realizar tarefas
específicas.
Biblioteca padrão C - ANSI - funções básicas.
As primeiras linhas do programa indicam as
bibliotecas utilizadas
#include “minha_biblioteca.h” ou
#include <minha_biblioteca.h>
11. Introdução Linguagem C
Estrutura de um programa C
/* Primeiro Programa em C */
#include <stdio.h>
main()
{
printf(“Meu primeiro programa em Cn”);
}
12. Introdução Linguagem C
Estrutura de um programa C
/* Primeiro Programa em C */ comentários
#include <stdio.h> /*biblioteca de E/S */
main() /*função principal – inicio do programa*/
{ /*marca início da função*/
printf(“Meu primeiro programa em
Cn”); /*função para escrever na tela*/
} /*marca fim da função*/
13. Introdução Linguagem C
Digitando um programa C
Utilizar um editor qualquer: vi ou xedit
Digite o programa anterior
Salve com o nome p1.c
14. Introdução Linguagem C
Compilando e Executando
Para compilar: (verifica a sintaxe)
>> cc fonte.c <ENTER>
Para compilar e gerar executável:
>> cc fonte.c –o nomeexec <ENTER>
Executando:
>> ./nomeexec <ENTER>
OBS:
Se o nome do executável não for informado o default é a.out
15. Introdução Linguagem C
Variável
Variável: “objeto” que pode assumir diversos
valores;
espaço de memória de um certo tipo de dado
associado a um nome para referenciar seu
conteúdo
Main ( )
{
int idade;
idade = 30;
printf (“ A idade é : %d”, idade);
}
16. Introdução Linguagem C
Nomes de Variáveis
quantos caracteres quiser (32);
comece com letras ou sublinhado:
Seguidos de letras, números ou sublinhados
C é sensível ao caso:
peso <> Peso <> pEso
não podemos definir um identificador com o
mesmo nome que uma palavra chave
auto static extern int long if while do ......
17. Introdução Linguagem C
Declaração de Variáveis
Instrução para reservar uma quantidade
de memória para um certo tipo de dado,
indicando o nome pelo qual a área será
referenciada
>> tipo nome-da-variável; ou
>> tipo nome1, nome2,...,nomen
EX: char nome;
int idade, num;
18. Introdução Linguagem C
Tipos Básicos de Dados
determinar um conjunto de valores e as
possíveis operações realizadas sobre os
mesmos ;
informa a quantidade de memória (bytes);
tipo bytes escala
char 1 -128 a 127
int 2 -32.768 a 32.767
float 4 3.4e-38 a 3.4e+38
double 8 1.7e-308 a 1.7e+308
19. Introdução Linguagem C
Diferentes tipos de inteiros
Long ou Long int (4 bytes)
Unsigned Char (0 a 255)
Unsigned int (0 a 65.535)
obs: int tem sempre o tamanho da
palavra da máquina
20. Introdução Linguagem C
Programa Exemplo – Tipos de Dados
e Variáveis
#include <stdio.h>
main( )
{
int soma=10;
float money=2.21;
char letra= ´A´;
double pi=2.01E6;
printf (“valor da soma = %dn”, soma);
printf (“Valor de Money = %fn”, money);
printf(“Valor de Letra = %cn”, letra);
printf(“Valor de Pi = %en”, pi);
}
22. Introdução Linguagem C
Intruções de E/S – Scanf ( )
Leitura de dados tipados via teclado
Scanf (“string de controle”, lista de
argumentos);
Exemplo:
scanf(“%d”,&idade);
OBS: Para seqüência
de caracteres (%s), o
caracter & não deverá
ser usado.
23. Introdução Linguagem C
Comandos de E/S – printf ( )
Apresentação de dados no monitor
printf(“string de controle”, lista de argumentos);
Exemplo:
printf (“Digite a sua idade:n”);
scanf (“%d”, &idade);
printf(“Sua idade é: %d”, idade);
24. Introdução Linguagem C
String de controle
%c → caracter
%d → inteiro
%e → número ou notação científica
%f → ponto flutuante
%o → octal
%x → hexadecimal
%s → string (cadeia de caracteres)
%lf → double
25. Introdução Linguagem C
Exemplo strings de controle
#include <stdio.h>
main ( )
{
char a ;
printf ( “digite um caracter” );
scanf ( “ % c”, &a );
printf (“ n %c = %d em decimal”, a, a);
printf (“%o em octal, %x em hexadecimal”, a, a);
}
Digitando m:
m = 109 em decimal, 155 em octal, 6d em hexadecimal
26. Introdução Linguagem C
Operador de Endereço &
um endereço de memória é o nome que o
computador usa para identificar uma variável
toda variável ocupa uma área de memória e seu
endereço é o primeiro byte por ela ocupado
Ex :
inteiro → 2 bytes
float → 4 bytes
char → 1 byte
27. Introdução Linguagem C
Operador de Endereço &
Quando usamos & precedendo uma
variável estamos falando do endereço
desta variável na memória
Ex:
Main ( )
{
int num;
num = 2;
printf (“valor = %d, endereço = %Iu”, num,&num);
}
Saída: valor = 2, endereço = 1230
Varia conforme memória da máquina
29. Introdução Linguagem C
Formatando as saídas - printf
é possível estabelecer o tamanho mínimo para a
impressão de um campo
#include <stdio.h>
main ( )
{
printf (“os alunos são %2d n”, 350);
printf (“os alunos são %4d n”, 350);
printf (“os alunos são %5d n”, 350);
}
Saída: os alunos são 350
os alunos são 350
os alunos são 350
30. Introdução Linguagem C
Formatando as saídas - printf
#include <stdio.h>
main ( )
{
printf (“ %3.1f n”, 3456.78);
printf (“ %10.3f n”, 3456.78);
}
Saída: 3456.8
3456.780
31. Introdução Linguagem C
Programando – Exercício 1
Faça um programa para ler e escrever na tela o
seu nome e a sua idade.
#include <stdio.h>
main( )
{
int idade;
char nome[30];
printf (“Digite o seu nome:n”);
scanf(“%s”, nome);
printf (“Digite a sua idade:n”);
scanf (“%d”, &idade);
printf(“A idade do(a) %s é %d”,nome, idade);
}
32. Introdução Linguagem C
Programando – Exercício 2
Faça um programa para ler e escrever
na tela os seguintes dados:
Nome
Endereço
Telefone
Cidade
Cep
33. Introdução Linguagem C
Operadores Aritméticos
Operador Ação
+ Adição
* Multiplicação
/ Divisão
% Resto da divisão inteira
- Subtração (unário)
-- Decremento
++ Incremento
34. Introdução Linguagem C
Operadores Relacionais e
Lógicos
Operador Ação
> Maior que
>= Maior ou igual que
< Menor que
<= Menor ou igual que
== Igual a
!= Diferente de
&& Condição “E”
|| Condição “OU”
! Não
35. Introdução Linguagem C
Operadores - Observação
Em C o resultado da comparação será
ZERO se resultar em FALSO e
DIFERENTE DE ZERO no caso de
obtermos VERDADEIRO num teste
qualquer.
37. Introdução Linguagem C
Comparações e Testes
Observemos antes de mais nada que +
+x é diferente de x++!
Se
x = 10;
y = ++x;
/* x=x+1; y=x; */
então
x = 11 e
y = 11
porém Se
x = 10;
y = x++;
/* y=x; x=x+1 */
então
x = 11 e
y = 10
38. Introdução Linguagem C
Programa Exemplo – Pre/Pos
Incremento
#include<stdio.h>
main()
{
int cont = 0, loop;
loop=++cont;
printf(“Loop=%d, Cont=%dn”, loop, cont);
loop=cont++;
printf(“Loop=%d, Cont=%dn”, loop, cont);
Quais são as saídas deste programa ?
39. Introdução Linguagem C
Comparações e Testes
Se
x = 1;
y = 2;
printf(“%d == %d e’ %dn”, x, y, x==y )
Qual seria a saída deste comando?
resultaria em 1 == 2 0
(pois a expressão é falsa)
40. Introdução Linguagem C
Comparações e Testes
if (10 > 4 && !(10 < 9) || 3 <= 4)
Como seria avaliado esta instrução?
resultaria em Verdadeiro, pois dez é maior
que quatro E dez não é menor que nove
OU três é menor ou igual a quatro
41. Introdução Linguagem C
Operador Sizeof
Este operador retorna o tamanho da variável
ou tipo que está em seu operando.
Por exemplo “sizeof(char)” resultaria em 1.
42. Introdução Linguagem C
Conversões de Tipos
Quando forem misturadas variáveis de diferentes tipos, o compilador
C converterá os operandos para o tipo de operando maior, de acordo
com as regras descritas a seguir:
1-Todo char e short int é convertido para int. Todo float é convertido
para double.
2-Para os demais pares de operandos valem as seguintes regras em
seqüência:
2.1- Se um operando for long double, o outro também o será.
2.2- Se um operando for double, o outro também o será.
2.3- Se um operando for long, o outro também o será.
2.4- Se um operando for unsigned, o outro também o será.
43. Introdução Linguagem C
Conversões de Tipos - NOTA
Nota: Devemos observar que o compilador C é bastante flexível e
pouco vigilante, comportando-se de maneira muito diferente de um
compilador Clipper ou Pascal, sempre vigilantes com relação aos
tipos das variáveis. De fato aqueles compiladores podem gerar
executáveis misturando tipos, porém a ocorrência de erros de
execução é quase inevitável. Ao contrário destes compiladores, os
compiladores C “ajeitam” as coisas para o programa funcionar da
“melhor maneira possível”, o que não significa em hipótese alguma
que os resultados serão os esperados por programadores “relapsos”.
Assim esta boa característica dos compiladores C, pode transformar-
se numa autêntica “bomba relógio” para programas não muito bem
elaborados.
45. Introdução Linguagem C
Estruturas de Decisão
Permitir testes para decidir ações
alternativas:
if
if - else
switch
(?:) Operador Condicional
46. Introdução Linguagem C
Comando if
if (condição)
instrução;
#include <stdio.h>
main ( )
{
char ch;
ch = getchar ( );
if (ch == ‘p’)
printf (“você pressionou a
tecla p”);
}
if (condição) {
instrução1;
intrução2;
}
#include <stdio.h>
main ( )
{
if (getchar()) == ‘p’ ) {
printf (“ você digitou p”);
printf (“ pressione outra tecla ”);
getchar( );
}
}
47. Introdução Linguagem C
if aninhados
Se um comando if está dentro do outro if,
dizemos que o if interno está aninhado.
#include <stdio.h>
main ( )
{
char ch;
printf (“ digite uma letra
entre A e Z”);
ch = getchar ( );
if (ch >= ‘A’)
if (ch < = ‘Z’)
printf (“ você acertou”);
}
#include <stdio.h>
main ( )
{
char ch;
printf (“ digite uma letra
entre A e Z”);
ch = getchar ( );
if ((ch >= ‘A’) && (ch < = ‘Z’))
printf (“ você acertou”);
}
48. Introdução Linguagem C
Comando if-else
O comando if só executa a instrução caso a
condição de teste seja verdadeira, nada
fazendo se a expressão for falsa.
O comando else executará uma instrução ou
um conjunto de instruções se a expressão for
falsa.
49. Introdução Linguagem C
Comando if-else
if (condição)
instrução;
else
instrução;
#include <stdio.h>
main ( )
{
if (getchar ( ) == ‘p’)
printf (“ você digitou p”);
else
printf (“ você não digitou p”);
}
50. Introdução Linguagem C
Exemplo: Evitar-se divisões por Zero,
usando recursos do comando if-else.
include <stdio.h>
main()
{
int a,b;
printf(“Digite 2 números: “);
scanf(“%d %d”,&a,&b);
if (b)
printf(“%f”,a/b);
else
printf(“Nao posso dividir por zeron”);
}
51. Introdução Linguagem C
Comando if-else aninhados
if (condição1)
instrução
else if (condição2)
instrução
else if (condição3)...
#include <stdio.h>
main ( )
{
int número;
scanf (“ % d”, &número);
if (número < 0)
printf (“número menor que zero”);
else if (número < 10)
printf (“ número ≥ 0 e < 10”);
else if (número < 100)
printf (“número ≥ 10 e < 100);
else
printf (“número ≥ 100”);
}
52. Introdução Linguagem C
Como o computador decide de qual
if o else pertence?
EX1:
if (n > 0)
if (a > b){
z = a;
calculafatorial(z);
}
else
z = b;
Ex1: Quando n > 0 e a < b
Ex2: Quando n < 0
• else é sempre associado ao if mais interno
• quando z = b será executado?
Ex2:
if (n > 0) {
if (a > b)
z = a;
} else
z = b;
53. Introdução Linguagem C
Exemplo 1: Programa Adulto, Jovem ou Velho.
#include <stdio.h>
main()
{
int i;
printf(“Digite sua idade: “);
scanf(“%d”,&i);
if (i > 70)
printf(“Esta Velho!”);
else
if (i > 21)
printf(“Adulto”);
else
printf(“Jovem”);
}
54. Exemplo 2: Maior entre três números
main()
{
int a,b,c;
printf(“Digite o 1º Número: “);
scanf(“%d”,&a);
printf(“nDigite o 2º Número: “);
scanf(“%d”,&b);
printf(“nDigite o 3º Número: “);
scanf(“%d”,&c);
if (a > b)
if (a > c)
printf(“nO Maior é %d”,a);
else
printf(“nO Maior é %d”,c);
else
if (b > c)
printf(“nO Maior é %d”,b);
else
printf(“nO Maior é %d”,c);
}
main()
{
int a,b,c,d;
cls();
printf(“Digite o 1º Número: “);
scanf(“%d”,&a);
printf(“nDigite o 2º Número: “);
scanf(“%d”,&b);
printf(“nDigite o 3º Número: “);
scanf(“%d”,&c);
if (a > b)
d = a;
else
d = b;
if (c > d)
printf(“nO Maior é %d”,c);
else
printf(“nO Maior é %d”,d);
}
55. Introdução Linguagem C
Exemplo 3: Dados 2 números apresente-os
ordenados.
main()
{
int a,b,t;
printf(“Digite o 1º Número: “);
scanf(“%d”,&a);
printf(“nDigite o 2º Número: “);
scanf(“%d”,&b);
if (a < b) {
t = a;
a = b;
b = t;
}
printf(“nOrdenados: %d e %d “,b,a);
}
56. Introdução Linguagem C
Comando ?:
Forma compacta de expressar uma instrução
if – else
(condição) ? expressão1 : expressão2
Max = (num1 > num2) ? num1 : num2
Note:
if (num1 > num2) max = num1;
else max = num2;
Exemplo:
ABS = (num < 0) ? - num : num;
58. Introdução Linguagem C
Comando Switch
Forma de se substituir o comando if – else ao
se executar vários testes
Diversas vezes precisamos determinar se um
valor encontra-se numa lista de valores.
Apesar de podermos usar uma seqüência de
ifs, este recurso além de não ser elegante,
por vezes confunde o entendimento do
programa. Vejamos uma opção melhor: o
comando switch.
59. Comando Switch
switch <variável> {
case <constante 1> :
<comandos>;
[break;]
case <constante 2> :
<comandos>;
[break;]
case <constante 3> :
<comandos>;
[break;]
[default :
<comandos>;]
}
OBS:
•“ variável” deve ser uma variável
do tipo inteiro ou caracter;
•“break” serve para terminar a
seqüência de comandos em
execução, por serem opcionais,
se forem suprimidos permitem
que o “case” a seguir seja
executado, sem haver qualquer
quebra na seqüência do
processamento.
60. Comando Switch - Ex: uma calculadora
#include <stdio.h>
main ( )
{
char op;
float num 1, num 2;
printf (“ digite um n.o, um operador e um n.o”);
scanf (“ %f %c %f”, &num1, &op, &num2);
switch (op) {
case ‘+’:
printf (“ = %f”, num 1 + num 2);
break:
case ‘-’:
printf (“ = %f”, num 1 - num 2);
break;
default:
printf (“ operador inválido”);
}
}
61. Introdução Linguagem C
Exercício
Seguindo a idéia do exercício anterior
incremente a calculadora com mais
funções matemáticas.
Sugestão: use funções da biblioteca
matemática math.h como por exemplo:
sin(x) cos(x) log(x) sqrt(x) pow(x1,x2)
Para compilar a biblioteca matemática :
cc p1.c -o p1 -lm
62. Introdução Linguagem C
Estruturas de Repetição
#include <stdio.h>
main ( )
{
printf (“1”);
printf (“2”);
: : :
printf (“10”);
}
saída: 1 2 3 4 ...
10
Como imprimir os
1000 1os números
a partir de 1?
63. Introdução Linguagem C
Estruturas de Repetição
for, while, do-while
repetir uma seqüência de comandos
#include<stdio.h>
main ( )
{
int num;
for (num = 1; num <= 1000; num++)
printf (“ % d”, num);
}
Saída: 1 2 3 ... 1000
64. Introdução Linguagem C
Comando for
for (<início>;<condição>;<incremento>) <comando>;
Na forma mais simples:
• Inicialização:
• expressão de atribuição
• sempre executada uma única vez
• Teste:
• condição que controla a execução do laço
• é sempre avaliada a cada execução
• verdadeiro → continua a execução
• falso → para a execução
65. Comando for
•Incremento:
• define como a variável de controle será alterada
• é sempre executada após a execução do corpo do
laço
Exemplo: imprimindo números pares
#include<stdio.h>
main ( )
{
int número;
for ( número = 2; número < 10; número += 2 )
printf (“ %d”, número);
}
Saída 2 4 6 8
66. Comando for
Flexibilidade: qualquer expressão de um laço “for”
pode conter várias instruções separadas por vírgula.
for (x=0,y=0;x+y<100;++x,y=y+x)
printf(“%d”,x+y);
Esta instrução inicializaria x e y com zero, incrementando
x de 1 em 1 e y receberia seu valor acrescido do de x. O
resultado a cada iteração seria impresso desta forma: 0
(x=0 e y=0) 2 (x=1 e y=1) 5 (x=2 e y=3) 9 14 e assim
sucessivamente.
67. Comando for - Exemplo
Exemplo 1: Contagem simples com condição no teste “for”.
main()
{
int i,j,resposta;
char feito = ‘ ‘;
for (i=1;i<100 && feito != ‘N’;i++) {
for (j=1;j<10;j++) {
printf(“Quanto e’ %d + %d? “,i,j);
scanf(“%d”,&resposta);
getchar(); /* limpar o buffer do teclado */
if (resposta != i+j)
printf(“Errou!n);
else
printf(“Acertou!n”);
}
printf(“Mais? (S/N) “);
scanf(“%c”,&feito);
getchar(); /* limpar o buffer do teclado */
}
}
68. Introdução Linguagem C
Comando for – loop infinito
A ausência de condições de inicialização,
continuidade e terminação, causarão um processo
contínuo e teoricamente infinito (veremos
posteriormente a intrução break, que tem a
capacidade de encerrar um processo assemelhado
ao exemplificado).
for(;;)
printf(“Este loop rodará eternamente!n”);
69. Introdução Linguagem C
Comando for – Loop Vazio
A presença do ponto e vírgula finalizando
o comando, força a execução do loop
sem que seja executado qualquer outro
comando.
for(i=0;i<10;i++);
70. Comando for – Loop Finito
Ao contrário de outras linguagens que não permitem o término do
loop a não ser quando a condição de finalização for satisfeita, a
linguagem C permite que um loop seja interrompido antes de seu
término normal (desestruturação) sem que exista qualquer tipo de
inconveniente. O comando “break” causa essa interrupção.
for(;;) {
scanf(“%c”,&c);
if (c == ‘A’)
break;
/*interrompe o que deveria ser um laço eterno*/
}
printf(“Fim do Loop!”);
71. Introdução Linguagem C
Comando While
while <condição> <comando>;
Exemplo: Contagem
#include <stdio.h>
main()
{
int i=0;
while (i < 10) {
printf(“%d”,i);
i++;
}
}
• O loop se repete,
enquanto a condição
for verdadeira
72. Comando do - while
Ao contrário das estruturas “for” e “while” que
testam a condição no começo do loop, “do / while”
sempre a testa no final, garantido a execução ao
menos uma vez da estrutura.
do {
<comandos>;
} while <condição>;
Exemplo: Término determinado pelo
usuário.
#include <stdio.h>
main()
{
int num;
do {
scanf(“%d”,&num);
} while (num < 100);
}
73. / * testa a capacidade de adivinhar uma letra * /
#include <stdio.h>
main ( ) {
char ch;
int tentativas;
do {
printf (“digite uma letra”);
scanf(“%c”, ch); getchar ( );
tentativas = 1;
while ( ch!= ‘t’) {
printf (“%c é incorreto n”, ch);
tentativas++;
printf (“tente novamente n”);
}
printf (“%c é correto”, ch);
printf (“acertou em %d vezes”, tentativas);
printf (“continua? (s / n):”);
scanf(“%c”,ch); getchar( );
} while (ch == ‘s’);
75. Introdução Linguagem C
Funções / Procedimentos
Dividir uma tarefa complexa em tarefas
menores, permitindo esconder detalhes de
implementação
Evita-se a repetição de um mesmo código
Tipo Nome (lista de parâmetros)
{
corpo
}
76. Procedimentos
“Funções” que
não retornam
valores
Tipo: void
#include <stdio.h>
void desenha();
void desenha( )
{
int i;
for (i = 0; i < = 10; i++)
printf (“-”);
}
main ( )
{
desenha ( );
printf (“ usando funções”);
desenha ( );
}
___________usando funcoes___________
77. Funções Retornam valores
#include <stdio.h>
int fatorial (int);
int fatorial (int n)
{
int i, resultado = 1;
for ( i = 1; i <= n; i ++)
resultado *= i;
return resultado;
}
main ( )
{
printf (“ o fatorial de 4 = %d”, fatorial(4) );
printf (“ o fatorial de 3 = %d”, fatorial(3) );
}
78. Introdução Linguagem C
Variáveis locais
Variáveis declaradas dentro de uma
função são denominadas locais e
somente podem ser usadas dentro do
próprio bloco
São criadas apenas na entrada do
bloco e destruídas na saída
(automáticas)
79. Variáveis Locais
void desenha ( )
{
int i, j;
. . .
}
main ( )
{
int a;
desenha();
a = i; ← erro
. . .
}
void desenha ( )
{
int i, j;
. . .
. . .
}
void calcula ( )
{
int i, j;
. . .
. . .
}
i, j em
desenha são
variáveis
diferentes de
i, j em
calcula.
80. Introdução Linguagem C
Variáveis Globais
Variável que é declarada externamente
podendo ser acessada por qualquer função
#include <stdio.h>
main ( )
{
int i;
.........
.........
desenha ( );
calcula ( );
}
void desenha ( )
{
int j;
i = 0;
. . .
}
void calcula ( )
{
int m;
i = 5;
. . .
}
81. Introdução Linguagem C
Comando Return
Causa a atribuição da expressão a função
forçando o retorno imediato ao ponto de chamada da função.
#include <stdio.h>
main ( )
{
char letra;
printf (“ digite uma letra em
minúsculo”);
letra = minúsculo ( );
if (letra == ‘a’)
printf (“ok”);
}
char minúsculo ( )
{
char ch;
scanf(“%c”, ch);
if ( (ch >= ‘A’) && (ch <= ‘Z’))
return (ch + ‘a’ - ‘A’);
else
return (ch);
}
82. Introdução Linguagem C
Note pelo exemplo anterior que a
função minúsculo lê um valor
internamente convertendo-o para
minúsculo.
Como usar esta função se já temos uma
letra e desejamos convertê-la para
minúsculo?
83. Introdução Linguagem C
Passando dados para função
Passagem de parâmetro por valor -
uma cópia do argumento é passada
para a função
O parâmetro se comporta como uma
variável local
84. Introdução Linguagem C
Passando dados para função
main ( )
{
printf (“ %c”, minúsculo (‘A’) );
↑
parâmetro real
}
char minúsculo (char ch)
↑ parâmetro formal
{
if (( ch >= ‘A’)&& (ch <= ‘Z’))
return (ch + ‘a’-, ‘A’);
else
return (ch);
}
85. Passando dados para função - Exemplo
#include <stdio.h>
main ( )
{
int num, b;
printf (“ entre com um número > o”);
scanf (“ %d”, &num );
b = abs (num);
. . .
printf (“ Valor absoluto de num = %d”, abs(num) );
. . .
b = abs(-3);
}
int abs (int x)
{
return ( ( x < 0 ) ? -x : x );
}
86. Introdução Linguagem C
Passando vários argumentos
Ex 1:
float área_retângulo (float
largura, float altura)
{
return (largura * altura);
}
Ex 2:
float potência (float base, int expoente)
{
int i; float resultado = 1;
if (expoente == 0)
return 1;
for (i = 1; i <= expoente; i++)
resultado *= base
return resultado;
}
87. Usando várias funções: calcular a seguinte
seqüência
S(x, n) = x/1! + x2
/2! + x3
/3! + ... + xn
/ n!
#include <stdio.h>
float serie (float , int );
float potencia (float , int)
int fat (int);
main( )
{
float x;
int termos;
printf(“entre com o numero de termos: “);
scanf(“%d”, &termos);
printf(“entre com o valor de X: “);
scanf(“%f”, &x);
printf(“O valor de série = %f “, serie(x, termos));
}
88. float potencia (float base, int expoente)
{
int i; float resultado = 1;
if (expoente == 0)
return 1;
for (i = 1; i <= expoente; i++)
resultado *= base;
return resultado;
}
float serie (float x, int n)
{
int i; float resultado = 0;
for ( i = 1; i <= n; i++)
resultado += potência( x, i ) / fat( i );
return resultado;
}
89. int fat (int n)
{
int i, resultado = 1;
for ( i = 1; i <= n; i ++)
resultado *= i;
return resultado;
}
90. Introdução Linguagem C
Vetores
tipo de dado usado para representar uma coleção de
variáveis de um mesmo tipo
estrutura de dados homogênea unidimensional
Ex: Ler a nota de 3 alunos e calcular a média
int nota0, nota1, nota2;
printf(“entre com a 1a. nota”);
scanf(“%d”, ¬a0);
: : :
printf(“média = %f”, (nota0 + nota1 + nota2) / 3));
91. Ex: Calcular a média de 300 alunos
#include<stdio.h>
#define N_ALUNOS 40
main( )
{ int i;
float notas [ N_ALUNOS ], media = 0;
for ( i = 0; i < N_ALUNOS; i++ ) {
printf (“entre com a nota %d”, i+1);
scanf (“%f”, ¬as[ i ]);
media += notas [ i ];
}
printf (“ Média = %f n”, media / N_ALUNOS);
for ( i = 0; i < N_ALUNOS; i++ ) {
printf (“n Nota do aluno %d = ”, i+1);
printf (“%f n”, notas[ i ]);
}
}
92. Introdução Linguagem C
Vetores – Observações importantes
em ‘C’ não existe declaração de vetor
dinâmico
o tamanho de um vetor tem que ser
determinado em tempo de compilação
Ex: int alunos;
int notas [ alunos ];
: : :
printf (“entre com o número de alunos”);
scanf (“%d”, &alunos);
NÂO É ACEITO !!!
93. Introdução Linguagem C
Vetores – Observações importantes
Solução: declarar um vetor que suporte
um número máximo de elementos
Ex: int alunos;
int notas [ 70 ];
: : :
printf (“entre com o número de alunos”);
scanf (“%d”, &alunos);
94. Introdução Linguagem C
Vetores – Observações importantes
C não realiza verificação de limites em
vetores
nada impede o acesso além do fim do vetor
faça sempre que necessário a verificação
dos limites
95. Vetores – Obs importantes
#include <stdio.h>
#define TAMANHO 100
main( )
{
int quantidade, media = 0;
float notas [ TAMANHO ];
// quantidade deve ser ≤ TAMANHO
printf ( “quantas notas devo ler ?”);
scanf(“%d”, &quantidade);
for ( i = 0; i < quantidade; i++) {
printf ( “entre com a nota %d”, i+1);
scanf(“%d”, ¬as [ i ]);
}
: : :
for ( i = 0; i < quantidade; i++)
media += notas [ i ];
: : :
96. Introdução Linguagem C
Passando um vetor para uma função
#include <stdio.h>
int maximum( int [] ); /* ANSI function prototype */
main( )
{
int values[5], i, max;
printf("Entre com 5 numeros:n");
for( i = 0; i < 5; ++i )
scanf("%d", &values[i] );
max = maximum( values );
printf("nValor Maximo: %dn", max );
}
97. Introdução Linguagem C
int maximum( int values[5] )
{
int max_value, i;
max_value = values[0];
for( i = 0; i < 5; ++i )
if( values[i] > max_value )
max_value = values[i];
return max_value;
}
Saída:
Entre com 5 numeros:
7 23 45 9 121
Valor Maximo: 121
98. Introdução Linguagem C
Matrizes
em ‘C’ podemos definir um vetor em que
cada posição temos um outro vetor (matriz).
estrutura de dados homogênea
multidimensional
Note:
int matéria [ 4 ] [ 40 ];
temos 4 matérias, cada uma com 40 alunos
99. Introdução Linguagem C
Matrizes - Leitura
int i, j, matéria [ 4 ] [ 40 ];
for ( i = 0 ; i < 4; i++ ) {
printf (“entre com as notas da matéria %d”, i+1);
for ( j = 0; j < 40; j++) {
printf (“entre com a nota do aluno %d”, j+1);
scanf (“%d”, &materia [ i ] [ j ]);
}
}
100. Introdução Linguagem C
Variável String
matriz do tipo char terminada pelo caractere null ‘0’
cada caractere de um string pode ser acessado
individualmente
vetor de tamanho n → string de tamanho ( n-1 )
Ex:
char string[10] = “exemplo” ;
char string[10] = { “exemplo” };
char string[10] = { ‘e’, ‘x’, ‘e’, ‘m’, ‘p’, ‘l’, ‘o’, ‘0’ };
printf ( “%s”, string );
printf ( “%c”, string [ 0 ] );
101. Introdução Linguagem C
Lendo Strings
scanf : lê o string até que um branco seja
encontrado
Ex:
main ( )
{
char nome[40];
printf ( “Digite seu nome: “ );
scanf ( “%s”, &nome[ 0 ] );
//scanf ( “%s”, nome );
printf ( “Bom dia %c”, nome[0] );
}
Saída:
Digite seu nome: Jose Maria
Bom dia Jose
102. Introdução Linguagem C
Lendo Strings
Gets
lê caracteres até encontrar ‘n’
substitui ‘n’ por ‘0’
Ex:
main ( )
{
char nome[40];
printf ( “Digite seu nome: “ );
gets ( &nome[ 0 ] ); // ou gets(nome);
printf ( “Bom dia %s”, nome );
}
Saída:
Digite seu nome: Jose Maria
Bom dia Jose Maria
103. Introdução Linguagem C
Imprimindo Strings
printf
puts
Ex:
main ( )
{
char nome[40];
printf ( “Digite seu nome: “ );
gets ( &nome[ 0 ] );
puts ( “Bom dia ” );
puts ( nome );
}
Saída:
Digite seu nome: Jose Maria
Bom dia
Jose Maria
104. Introdução Linguagem C
Funções de manipulação de
strings
Strlen
retorna o tamanho do string - não conta ‘0’
Ex:
main ( )
{
char nome[40];
printf ( “Digite seu nome: “ );
gets ( &nome[ 0 ] );
printf (“Tamanho = %d”, strlen(&nome[ 0 ]) );
}
Saída:
Digite seu nome: Jose Maria
Tamanho = 10
105. Introdução Linguagem C
Funções de manipulação de
strings
strcat ( str1, str2 )
concatena str2 ao final de str1
Ex:
main ( )
{
char nome[40] = “Jose”,
char sobrenome[30] = “Maria”;
strcat(nome, sobrenome);
puts (sobrenome);
puts (nome);
}
Saída:
Maria
JoseMaria
Cuidado:
dado str1 + str2
tem que caber em
str1
106. Introdução Linguagem C
Funções de manipulação de
strings
strcmp ( str1, str2 )
compara dois strings retornando:
– negativo se str1 < str2
– 0 se str1 = str2
– positivo se str1 > str2
a comparação é feita por ordem
alfabética
107. #include <stdio.h>
main ( )
{
char nome[40] = “Jose”;
char sobrenome[30] = “Maria”;
if ( strcmp ( nome, sobrenome ) !=0)
puts ( “os strings são diferentes” );
else
puts ( “os strings são identicos” );
}
108. Introdução Linguagem C
Conversões
podemos também converter strings e números
(inteiros/fracionários) conforme desejarmos:
Exemplo: Conversão de String em Número Inteiro
#include <stdio.h>
main()
{
int i;
char s[10];
printf(“Digite uma sequencia de numeros com letras: “);
gets(s);
i = atoi(s);
printf(“Numero: %d “,i);
}
109. Introdução Linguagem C
Ponteiros
Ponteiros, como o próprio nome diz, é
um tipo de variável que aponta para
outra (de um tipo qualquer). Na
verdade um ponteiro guarda o
endereço de memória (local onde se
encontra na memória) de uma variável.
110. Introdução Linguagem C
Ponteiros
int teste=20;
int *p;
p=&teste;
p irá armazenar o endereço de memória da variável teste.
Ou seja, p não armazena o valor 20, mas sim o endereço de
teste que, este sim, armazena o valor 20.
como chegar ao valor 20 usando a variável p?
int teste=20;
int *p;
p=&teste;
printf("%dn",*p);
111. Introdução Linguagem C
Ponteiros
Outro exemplo:
char algo[5] = { 5, 4, 3, 2, 1 };
char *c;
c=&algo[2];
Colocamos em c o endereço do terceiro elemento de algo:
c[0]=3, c[1]=2 e c[2]=1.
Se tivéssemos feito c=&algo[3], então:
c[0]=2 e c[1]=1.
112. Ponteiros
int vet_notas[50];
int *pont_notas;
pont_notas=vet_notas;
Para imprimir a primeira e a décima nota de nosso vetor,
temos duas opções:
print ("A primeira nota é: %d", vet_notas[0]);
print ("A primeira nota é: %d", *pont_notas);
print ("A décima nota é: %d", vet_notas[9]);
print ("A décima nota é: %d", *(pont_notas+9));
113. Introdução Linguagem C
Equivalência entre vetores e ponteiros
vet_notas[0]==*(pont_notas);
vet_notas[1]==*(pont_notas+1);
vet_notas[2]==*(pont_notas+2);
115. Printf(“Entre com o número total de alunosn’”);
scanf(“%d”, &numero);
notas=(int *)malloc(numero * sizeof(int));
for (i=0; i,numero; i++) {
printf(“Digite a nota do aluno %d”, i+1);
scanf(“%d”, ¬as[i]);
printf(“n A nota do aluno %d é :%d: , i+1,
notas[i]);
}
free(notas);
116. Introdução Linguagem C
Estruturas
Uma estrutura é um conjunto de variáveis
dentro de um mesmo nome. Em geral, uma
variável é de um tipo específico, por
exemplo, temos uma variável do tipo inteira e
estamos fechados a nos referenciar aquele
nome que lhe foi dado sempre por um
número do tipo inteiro, logicamente. Já as
estruturas, dentro de um mesmo nome
podemos nos referenciar a uma gama de
variáveis pré-definidas.
117. Introdução Linguagem C
Estruturas
struct molde_conta
{
char nome[50];
int telefone;
float saldo ;
};
Definido o molde, devemos agora declarar a variável
que utilizará desse molde:
struct molde_conta conta;
119. Introdução Linguagem C
Estrutras - Utilização do tipo
Podemos fazer atribuição de structs, do tipo
conta2 = conta, e os valores serão idênticos.
Para contar o número de caracteres de nome
dentro da estrutura conta, podemos fazer:
for (i=0,conta.nome[i],++i) ;
printf ("o nome tem -> %d letras n",i);
120. Introdução Linguagem C
Vetores de Estruturas
struct molde_conta conta[100];
conta[1].telefone=2212324;
conta[1].nome=“joao carlos”;
conta[1].saldo=1245.89;
conta[5].telefone=2212888;
conta[5].nome=“Maria dos Santos”;
conta[5].saldo=6908.79;
121. Introdução Linguagem C
Arquivos - feopen( )
A função “fopen” tem duas finalidades:
- abrir uma fila de bytes
- ligar um arquivo em disco àquela fila
FILE *fopen(char *NomeArquivo, char *modo);
FILE *arquivo;
if ((arquivo = fopen(“teste”,”w”)) == NULL) {
puts(“Não posso abrir o Arquivo teste.n”);
exit(1); /* força o término da execução da rotina */
}
122. Modo Significado
“r” Abre Arquivo de Texto para Leitura
“w” Cria Arquivo de Texto para Gravação
“a” Anexa a um Arquivo de Texto
“rb” Abre Arquivo Binário para Leitura
“wb” Cria Arquivo Binário para Gravação
“ab” Anexa a um Arquivo Binário
“r+” Abre Arquivo de Texto para Leitura/Gravação
“w+” Cria Arquivo de Texto para Leitura/Gravação
“a+” Abre ou Cria Arquivo de Texto para Leitura/Gravação
“r+b” Abre Arquivo Binário para Leitura/Gravação
“w+b” Cria Arquivo Binário para Leitura/Gravação
“a+b” Abre ou Cria Arquivo Binário para Leitura/Gravação
123. Introdução Linguagem C
Arquivos - putc ( )
Grava caracteres em fila previamente abertos
int putc(int ch, FILE *fp);
ch é o caracter a ser gravado
fp é o ponteiro devolvido por fopen
putc(‘a’, arquivo);
124. Introdução Linguagem C
Arquivos - getc ( )
Ler caracteres em uma fila aberta
int getc(FILE *arquivo);
Exemplo:
ch = getc(arquivo);
while (ch != EOF)
ch = getc(arquivo);
125. Introdução Linguagem C
Arquivos - fclose ( )
Fechar as filas abertas. Caso o programa
seja encerrado sem que as filas sejam
fechadas, dados gravados nos buffers
podem ser perdidos.
int fclose(FILE *fp);
fclose(arquivo);
126. main()
{
FILE *arq;
char ch;
if ((arq=fopen(“teste.dat”,”w”)) ==
NULL) {
printf(“Arquivo não pode ser
criadon”);
exit(1);
}
do{
ch=getchar();
putc(ch,arq);
}while (ch!=0);
fclose(arq);
127. Introdução Linguagem C
Arquivos - ferror ( )
Determina se a operação de arquivo
produziu um erro. Sua forma geral será:
int ferror(FILE *fp);
128. Introdução Linguagem C
Arquivos - rewind( )
Reinicia o arquivo, equivale ao Reset
do Pascal, ou seja apenas movimenta o
ponteiro do arquivo para seu início.
129. Introdução Linguagem C
Arquivos - fwrite ( ) fread ( )
Permitem que leiamos/gravemos blocos de
dados, sua forma geral é a seguinte:
int fread(void *buffer, int num_bytes, int cont,
FILE *fp);
int fwrite(void *buffer, int num_bytes, int cont,
FILE *fp);
130. Arquivos - fwrite ( )
main()
{
FILE *fp;
float f = 12.23;
if ((fp=fopen(“teste”,”wb”)) == NULL) {
printf(“Arquivo não pode ser criadon”);
exit(1);
}
fwrite(&f,sizeof(float(),1,fp);
fclose(fp);
}
131. Introdução Linguagem C
Arquivos - fseek ( )
Entrada e saída com acesso aleatório
int fseek(FILE *fp, long int num_bytes,
int origem);
fp - é o ponteiro de arquivo devolvido por fopen().
num_bytes - é um inteiro longo que representa o
número de bytes desde a origem até chegar a
posição corrente.
OBS: Este comando é normalmente utilizado em
arquivos binários.
132. Exemplo : Leitura de um caracter em um
arquivo binário.
main()
{
FILE *fp;
if ((fp=fopen(“teste”,”rb”)) == NULL) {
printf(“Arquivo não pode ser aberton”);
exit(1);
}
fseek(fp,234L,0); /* L força que seja
um inteiro longo */
return getc(fp); /* lê o caracter 234 */
}
133. carga()
{
FILE *fp;
int i;
if ((fp=fopen(“LISTA.DAT”,”rb”)) == NULL) {
puts(“Falha na Abertura do Arquivo!”);
return;
}
inicia_matriz();
for (i=0; i < 100; i++)
if (fread(&matriz[i], sizeof(struct registro), 1, fp) != 1) {
if (feof(fp)) {
fclose(fp);
return;
}
else {
puts(“Erro de Leitura! “);
fclose(fp);
return;
}
}
}
Exemplo de montagem de um pequeno
cadastro de nomes, endereços e salários
de funcionários em arquivo.
134. salvar()
{
FILE *fp;
int i;
if ((fp=fopen(“LISTA.DAT”,”wb”))==NULL) {
puts(“Falhou Abertura! “);
return;
}
for (i=0;i<100;i++)
if (*matriz[i].nome)
if(fwrite(&matriz[i],
sizeof(struct registro), 1,fp) != 1)
puts(“Falha na Gravacao! “);
fclose(fp);
}
135. Vamos supor que desejamos criar um programa
que escreva num arquivo cujo nome será
fornecido na chamada do programa
(Exemplificando: KTOD TESTE <Enter>).
Gostaríamos que o DOS criasse o arquivo TESTE
guardando o conteúdo digitado durante a
execução do programa.
136. main(argv,argc)
onde
argc - tem o número de argumentos contidos
nas linha de comando (necessariamente
maior ou igual a um, pois o próprio programa
já é considerado um argumento pelo
D.O.S.).
argv é um ponteiro que acomodará os
caracteres digitados.
137. Exemplo 1: Programa KTOD, que escreve
caracteres num arquivo criado/aberto via D.O.S.
#include “stdio.h”
main(argc,argv)
int argc;
char *argv[];
{
FILE *fp;
char ch;
if (arg != 2) {
printf(“Digite o Nome do Arquivon”);
exit(1);
}
138. if ((fp=fopen(argv[1],”w”)) == NULL) {
printf(“Arquivo não pode ser
aberton”);
exit(1);
}
do {
ch = getchar();
putc(ch,fp);
} while( ch != ‘$’);
fclose(fp);
}
139. Exemplo 2: Programa DTOV, que apresenta em vídeo os
caracteres digitados via KTOD.
#include “stdio.h”
main(argc,argv)
int argc;
char *argv[];
{
FILE *fp;
char ch;
if (arg != 2) {
printf(“Digite o Nome do Arquivon”);
exit(1);
}
if ((fp=fopen(argv[1],”r”)) == NULL) {
printf(“Arquivo não pode ser aberton”);
exit(1);
}
ch = getc(fp);
141. Exemplo 3: Programa para copiar Arquivos.
#include “stdio.h”
main(argc,argv)
int argc;
char *argv[];
{
FILE *in, *out;
char ch;
if (arg != 3) {
printf(“Digite o Nome dos Arquivosn”);
exit(1);
}
if ((in=fopen(argv[1],”rb”)) == NULL) {
printf(“Arquivo origem não existen”);
exit(1);
}
if ((out=fopen(argv[2],”wb”)) == NULL) {
printf(“Arquivo destino não existen”);
exit(1);
}
while (! feof(in))
putc(getc(in),out); /* esta é a cópia propriamente dita */
fclose(in);
fclose(out);
}