Skip to content

Latest commit

 

History

History
487 lines (382 loc) · 8.88 KB

File metadata and controls

487 lines (382 loc) · 8.88 KB

fatecads

site da disciplina ILP-010 : https://sites.google.com/view/slagop/in%C3%ADcio/linguagem-de-programa%C3%A7%C3%A3o-n

Linguagem C:

(Compilador Pelles)

Introdução:

#include <stdio.h> // entrada e saída padrão
#include <math.h>  // funções matemáticas
#include <locale.h> // define caracteres
#include <stdbool.h> // booleanas
#include <conio.h> // color
#include <stdlib.h> // números aleatórios
#include <time.h>
#include <ctype.h>
#include <string.io>
int main(void) {

   return 0
 }

Variaveis

Tipos:

Tipo Tamanho na memória Limite numérico
float 4 bytes +-pow(10,38)
double 8 bytes +-pow(10,308)
int 4 bytes +-pow(10,9)
char 1 byte -127 a +128

Tipos modificados:

Tipo Tamanho na memória Limite numérico
unsigned char 1 bytes 0 a 255
unsigned int 4 bytes 0 a 4294967295
short 2 bytes -32767 a +32767
long long 8 byte -9223372036854775807 a +9223372036854775807
unsigned short int 2 byte 0 a 65535
unsigned long long int 8 byte 0 a 18446744073709551615

Formatação:

Especificador de formato:

Determina o tipo de dado que será lido do teclado ou exibido no vídeo.

Especificador Descrição
%c caractere
%o octal
%d decimal
%x,%X hexadecimal
%u número inteiro em base decimal sem sinal
%hd número inteiro curto em base decimal (short int)
%lld número inteiro longo longo em base decimal (long long int)
%f número real de precisão simples ou dupla (float)
%s cadeia de caracteres (string)
%% único sinal de porcentagem

Caracteres de controle:

Representa um caractere especial da tabela ASCII.

Caracter de controle Descrição
\a soa o alarme do computador
\b o cursor retrocede à coluna anterior
\f alimenta página na impressora
\n o cursor avança para uma nova linha
\r o cursor retrocede para a primeira coluna da linha
\t o cursor avança para próxima marca de tabulação
\0 indica o final de uma cadeia de caracteres
Observações:

sendo n posição do número, leitura da direita para esquerda, para conversão para decimal:

binário: somatorio(digiton*pow(2,n))

octal: somatorio(digitoN*pow(8,n))

hexadecimal: somatorio(digitoN*pow(16,n))

iniciados com 0 : número octal

Operadores

Operadores relacionais

Operador Significado
== Igual
!= Diferente
\< Menor
\> Maior
\<= Menor ou igual
\>= Maior ou igual

Operadores lógicos

Operador Significado
! Negação (não)
&& Conjunção
|| Disjunção
Observações:

! tem prioridade sobre &&, que tem prioridade sobre ||.

Os resultados dos operadores lógicos são definidos por suas respectivas tabelas-verdade.

Operador ternário

(condicao ? expressao1 : expressao2)

Operador de atribuição aritmético

  • Prefixado o valor de x é calculado antes da expressão

  • Posfixado o valor de x é calculado após a expressão

Forma estendida Forma posfixa Forma prefixa
x = x + 1 x++ ++x
x = x - 1 x-- --x

Comandos de seleção

Comando if-else

if ( condicao-1) comando1;
else if(condicao-2) comando2;
else condicao-3 comando-3;

Comando switch-case

switch ( expressao){
	case constante: sequencia_de_comandos;break;

_textcolor(1); default: sequencia_de_comandos;break; }

Bloco

int main(void) {
    for(int c = 0;c<=15;c++){
		_textcolor(14);
		_textbackground(1);
		if (c!=7) {printf("%20s\n"," ");}
		else{
			printf("%7s"," ");
			_textcolor(1);
			_textbackground(14);
			printf("%5s","TESTE");
			_textcolor(14);
			_textbackground(1);
			printf("%8s\n"," ");
		};
	}
	getchar();
  return 0;
}

Comandos de repetição

Comando for

int main(void) {
	int n;
	printf("Tamanho? ");
	scanf("%d",&n);
	for (int i=1;i<=n;++i){
		for(int j = 1;j<=n;++j){
			_textcolor((i+j)%2 ? 15 : 8);
			printf("%c%c",219,219);
		}
		putchar('\n');
	}
	return 0;
}

Comando while

int main(void) {
	srand(time(NULL));
	int c, n = rand()%7 + 1;
	do {
		printf("Chute entre 1 e 7: ");
		scanf("%d",&c);
		if(c>n) puts("Muito alto!");
		else if(c<n) puts("Muito baixo!");
		else puts("Voce acertou!");
	} while(n!=c);
	return 0;
}

Comando break

Vetores e Matrizes

Vetor

  • é um tipo de dados capaz de armazenar uma coleção de dados do mesmo tipo

      int v[3];
      int nome[n] = {valor1,valor2,valor3,...,valorn};
      int w[];
    
  • Logo após a criação do vetor, cada uma de suas posições tem um valor arbitrário

  • O nome de um vetor em C representa o seu endereço na memória, que coincide com o endereço de seu primeiro item.

  • Em C, no caso de vetores, a passagem é feita por referência (a função recebe o endereço do vetor e, usando esse endereço, pode manupular diretamente o vetor original).

Matriz

  • é um vetor cujos itens também são vetores.

Ordenação

Busca

Busca linear

  • não supõe que o vetor onde é feita a busca está ordenado.

  • número de operações é, no máximo, a ordem de complexidade O(n).

Busca binária

  • supõe que o vetor onde é feita a busca está ordenado.

  • número de operações = ordem de complexidade é O(logn).

Strings

Atribuição de strings

  • Como o nome de um vetor representa o seu endereço na memória (que é constante), não é possível copiar uma string para outra usando o operador de atribuição.

Comparação de strings

  • Como o nome de um vetor representa o seu endereço na memória (que é constante), não é possível copiar uma string para outra usando o operador de atribuição.

Estrutura

	typedef struct {
		int codigo;
		char nome[23];
		float salario;
	} Funcionario;
  • é um tipo de dados capaz de armazenar uma coleção de dados de tipos distintos.

  • Os itens de uma variável do tipo estrutura são identificados por nomes de campos e são armazenados em posições consecutivas de memória. Os itens da estrutura Funcionario são os seguintes? Funcionarios.codigo, Funcionario.nome e Funcionario.salario, de acordo com o exemplo acima.

  • O nome de uma variável do tipo estrutura não representa seu endereço de memória;

Tabela

  • é um vetor cujos itens são estruturas.

      Func v[] = {{561,"Eva Maranhao",9200.00,{2,7,2012}},
      {295,"Ana Teixeira",6100.00,{5,9,2015}},
          	{473,"Denise Lagoa",8500.00,{1,6,2013}},
          	{102,"Catia Telles",7300.00,{3,8,2014}},
          	{384,"Beatriz Lira",5400.00,{4,9,2016}}};
    

obs: alignment

operador unário operador binario (só estrutura tem campo)