Matrizes

– matriz: vetor com mais de uma dimensão.
char str[6] -> _ _ _ _ _ _ (6 posições)
int m[3][4] -> matriz de 2 dimensões
3 linhas e 4 colunas

Inicialização de Matrizes
– inicialização na declaração:
int M[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}

– incialização no código:
M = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};

também pode ser feita com vetores:
int v[6] = {1,2,3,4,5,6};

Nota sobre a nomenclatura:
– usamos o vetor para indicar matrizes unidimensionais.
– o nome “matriz” serve para qualquer número de dimensões.
– pode-se usar mais de 2 dimensões.

Acesso aos elementos:
– M[0][1] = 7 -> Atribui 7 ao elemento da primeira linha e segunda coluna.

– Caso especial de matrizes de caracteres são usadas para representar vetores de strings.

char nome{}

(continua…)

Ponteiros

Um ponteiro é um endereço de objeto de dados de um tipo particular. Isto é, o tipo deve ser essencial para usar os dados designados pelo endereço.
Variáveis que armazenam endereços, normalmente outras variáveis.

int i;
int *p -> int = tipo base para onde o ponteiro está indicando. define o ponteiro para uma variável inteira.
p = &i; -> endereço da variável i

Por que ponteiros precisam de um tipo base?

int *p -> _ -> _ _ _ _ (4)
float *p -> _ -> _ _ _ _ _ _ _ _ (8)
char *p -> _ -> _ (1)

sizeof – char = 1 / int = 4 / float = 8

Funções em C

#include

int e_primo(int n);
/* prototipo da função ; o primeiro int define a natureza da função, e os demais definem a natureza das variáveis */

int main(void)
{
int n, primo; –> variaveis locais
scanf(“%d”, &n);
primo =e_primo(n); –>(n)=argumento da função

(continua…)

Vetores

– coleções de variáveis do mesmo tipo, relacionadas entre si, contíguas a memória.
– pode-se:
–acessar um vetor inteiro; scanf(“%c”, str);
–acessar uma entrada de vetor pelo seu índice; printf(“%c”, str[0]);
–declaração:
float salario[100];
float->tipo base
salario->nome do vetor
[100]->número de posições
–todo vetor começa no índice zero (0)

0 1 2 3 4 5 6 7
A R R A S T A O
8 letras, mas último índice 7.

Operações com Strings

Header:string.h
strlen: devolve o comprimento de uma string.
strcpy(str1,str2): copia str1 em str2 e resultado em sh1

char str1[]=”Brian Kerrighan”;
str2[]=”Dennis Ritchie”;

B R I A N _ K E R R I G H A N 10
D E N N I S _ R I T C H I E 10

strcat(str1, str2): concatena str1 e str2 resultado em str1
strcomp(str1, str2): 0 se str1=str2
<0 se str1<str2
>0 se str1>str2

Strings


#include <stdio.h>
int main(void)
{
char name[11];
printf("Entre com um nome:");
scanf("%s"; nome);
printf("Nome digitado: %s", nome);
return 0;
}

Strings em C:
Sequencia de caracteres consecutivas na memória, delimitados por um /0 -> ASCII zero.

char nome[11] -> 10 caracteres + o /0.

0 – 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – 10
_ _ _ _ _ _ _ _ _ _ _

5a posição do vetor nome = 4a posição.

char nome[11];
char nome[11] = “Kerninghan”; -> OK
char nome[11] = “Bria Kernighan”; -> Compila, mas não deve ser usado (ocupa mais memória do que o solicitado).
char nome[] = “Brian Kernighan”; -> O compilador eh automatico, seleciona quantos caracteres forem preciso.
char nome[]; -> tranforma em ponteiros (char *nome;)

Acessando caracteres de uma string

char name[]=’Brian Kernighan’;
int indice;
printf(‘entre com a posicao desejada’);
scanf(‘%d, &num);
print(‘O elemento ocupando a posicao %d da string %s e a letra %c, com codigo ASCII %d’; indice, nome, nome[indice], nome[indice]);

Tamanho de uma string
STRLEN(nome) -> retorna o tamanho da string

Aula 3 – Armazenamento de informações não numéricas

byte de memória -> 0100 0001
se este byte for:
– um inteiro -> 65
– uma letra -> letra ‘a’ (código dado pela tabela ASCII)

Representação Sequencial
bit 48 – zero até nove
bit 65 – ‘A’ até ‘Z’
bit 97 – ‘a’ até ‘z’

Existe uma diferença até nos bits entre o zero numeral e o zero simbolo:
– 0000 0000 = zero inteiro
– 0011 0000 = zero caractere

Representação em Matriz

##Desenho do caderno##

o bit de sinal é sempre o primeiro bit
#000 0000

***Representação de inteiros negativos (<0) complemento de dois

Exemplo: 14 em 32 bits (bit de ordem 32)

0000 0000 | 0000 0000 | 0000 0000 | 0000 1110
inverte complemento de 2:
1111 1111 | 1111 1111 | 1111 1111 | 1111 0001
soma 1:
0000 0000 | 0000 0000 | 0000 0000 | 0000 0001
———————————————
1111 1111 | 1111 1111 | 1111 1111 | 1111 0010

Variáveis:

tipo + valor + nome + endereço

– nomes: 32 caracteres siginificativos
1o caractere: letra ou sidebar
demais: letra, underbar ou dígito
– linguagem C é case sensitive, ou sensível ao caso
– palavras reservadas x identificadores x funções de bibliotecas padrão (f.i. printf, scanf, sizeof, for)

Tipos de dados
– definirmos valores que uma variável pode possuir
– tipo básicos (escalares):
* char (caracter ‘A’,’a’,’l’ erro=”A”)
* int
* float (não tem precisão aritmética, mas é mais rápido)
* double (precisão aritmética)
* void (sizeof(void)=0)

sizeof = tamanho de bytes. serve para trabalhar com portabilidade: poder de tranferência para outros ambientes.

Constantes Especiais
a = bip
b = backspace
n = newline
= null
` = apostrofe
” = aspas
= barra invertida
t = tab horizontal

Codigo de formatação (printf e scanf)
%d = int
%s = string
%c = char
%n = unsigned int
%f = float
%li = long int
%ld = double
%% = imprime %
%5d = largura mínima 5 dígitos
%10.4f = largura mínima 10 dígitos, 4 casas decimais

Aula 1 – Conceitos de programação estruturada

Conceitos de programação estruturada

informática dados -> informação

computadores usam linguagem de máquina -> necessidade de uma linguagem intermediária para se comunicar com os computadores -> linugagem de programação

*Programação estruturada: metodologia para organizar programadas e algoritmos escrito em uma linguagem de programação.
*algoritmos: método de solução
* programas formados pelas estruturas:
-sequencial
-decisão/relação/condicional
-de repetição

*Estrutura geral de organização do hardware: arquitetura de van Newmann

*gráfico*

First program using C :)

Primeiro programinha… 🙂


# define DEFAULT 1
# include <stdio.h>
int main (void)
{
int num;
printf("Entre com um inteiro: ");
scanf("%d", &num);
printf("O numero digitado e:%d.n", num);
printf("O valor da macro default e DEFAULT");
getchar();
scanf("%d", &num);
return 0;
}