Você está na página 1de 65

Nossa fé está em Deus e Deus é AMOR, por isso invistamos no

amor para trazer DEUS próximo de nós

Professor:
Sebastião Da Cruz Miranda
Palavras de
reflexão

Trata a sabedoria como sua irmã e


o entendimento, como o seu melhor
amigo provérbios 7:4
Agora, moços, escutem!

Façam o que eu digo e serão


felizes.
Aprendam o que é ensinado a voçês,
sejam sabios; não abandonem esses
ensinamentos
Provérbios 8:32,33

Nenhuma parte deste material


pode ser reproduzida ou
transmitida de qualquer modo ou
por qualquer meio, sem prévia
autorização do autor e sem lhe ser
dado o devido crédito.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
CARO ALUNO(A):

Este material complementar foi desenvolvido pelo professor Sebastião da Cruz Miranda, com o
intuito de oferecer a você atividades práticas que possibilitarão o uso de todo o conteúdo ministrado
em sala de aula.

O professor Sebastião deseja que seu aprendizado possa ser enriquecedor, eficaz, dinâmico e repleto
de novas oportunidades que contribuirão para seu crescimento profissional.

Começar essa fase é um marco importante. Você passa a fazer parte de um grupo que está procurando
caminhos que vão além da expectativa de um simples “dever cumprido”. Queremos ir mais adiante e
fazer a diferença. Neste contexto, é muito importante nos sentirmos uma única equipe, que quer
buscar objetivos únicos. Assim, quero dar-lhe os parabéns pela sua iniciativa de vencedor!

Lembre-se de que agora formamos uma equipe. E uma equipe só ganha se todos estão dispostos a
vencer. Para isso, teremos a nossa disposição um conjunto de ferramentas integradas que irão nos
ajudar a percorrer o caminho escolhido. Este material faz parte dessas ferramentas.

Vale salientar que você está se profissionalizando para um mercado de trabalho que espera um
profissional qualificado e que essa qualificação não é uma roupa que vestimos e tiramos, é a pessoa
que se qualifica.
Nesta perspectiva, quanto mais buscarmos a interface do conteúdo estudado, com as questões de vida
e seus relacionamentos, mais tranquilos caminharemos. Aproveite bem esta oportunidade, e dê o
máximo de si, e verá que, no fim, tudo terá valido a pena.

EMENTA:

Estudo das formas para representação do pensamento lógico através de técnicas de desenvolvimento
de algoritmos.
Representação e manipulação de dados. Construções de algoritmos sequenciais, condicionais e com
estruturas de repetição. Manipulação de estruturas de dados homogêneas e heterogêneas, ponteiro e
utilização de estruturas.

OBJETIVOS:

Fornecer elementos e técnicas que capacitem o aluno a construir algoritmos, através da identificação
dos passos ou ações necessárias para transformar um conjunto de dados de entrada em informações
de resultado, promovendo dessa forma, um ambiente de prática da lógica de programação.

1 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
Dinâmica das aulas

 Exposição e Prática
 Exercícios em Sala de aulas
 Trabalhos de casa
 Enviar os trabalhos para:
 http://sebast.epizy.com/

PALAVRAS DO AUTOR
Um bom profissional de informática tipicamente é alguém com disposição para buscar soluções onde
necessárias, por sua própria iniciativa. Com base nessa premissa, muitos livros e cursos deixam a cargo do
estudante grande parte da busca, com a melhor intenção de estimular essa iniciativa. Mas quando começamos
algo, ignoramos até o que não sabemos; é comum não dispormos de pontos de partida, e procurá-los
representa um custo às vezes alto demais. Nesse momento, obter orientação adequada pode fazer a diferença
entre prosseguir ou desistir. O objetivo deste material é ser uma orientação para quem está iniciando o
aprendizado da linguagem de programação. Através de uma linguagem específica, facilitar o treinamento nas
habilidades essenciais necessárias para qualquer linguagem de programação, de forma simples e prática.

Bons profissionais de programação também sabem que somente dedicação e prática regulares podem
conduzir ao amadurecimento e à competência. Por isto os exercícios e práticas conduzem o aprendiz a
compreender e fixar os novos conhecimentos e também a conhecer valiosos recursos da linguagem e do
ambiente de programação.
O objetivo não é formar especialistas, e sim apoiar a formação básica de programadores, cuja prioridade
maior consiste em desenvolver as habilidades centrais mencionadas acima. Feito isso, o programador estará
em condições de dominar outras linguagens rapidamente.
Partindo do princípio que “a única coisa constante no mundo é a mudança”, forneço abaixo os meus
endereços eletrônicos para que você possa me ajudar, enviando críticas, elogios ou sugestões que servirão
para o eterno aprimoramento desse trabalho.

Encontra-nos
Facebook => Tudo Sobre Informática com a JSMP

Facebook => Casa de Código

Youtube => Programação com a JSMP

Tel. => 935457261

2 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
INTRODUÇÃO A LINGUAGEM C
Vamos, nesta formação, aprender os conceitos básicos da linguagem de programação C a qual tem se
tornado cada dia mais popular, devido à sua versatilidade e ao seu poder. Uma das grandes vantagens do C
é que ele possui tanto características de "alto nível" quanto de "baixo nível".
O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um
DEC PDP-11 rodando o sistema operacional UNIX. O C é derivado de uma outra linguagem: o B, criado
por Ken Thompson. O B, por sua vez, veio da linguagem BCPL, inventada por Martin Richards.
O C é uma linguagem de programação genérica que é utilizada para a criação de programas diversos como
processadores de texto, planilhas eletrônicas, sistemas operacionais, programas de comunicação, programas
para a automação industrial, gerenciadores de bancos de dados, programas de projeto assistido por
computador, programas para a solução de problemas da Engenharia, Física, Química e outras Ciências, etc.
Dados históricos:
 1969 - Desenvolvimento do UNIX (num PDP 7 em linguagem Assembly);
 1969 - Desenvolvimento da linguagem BCPL, próxima do Assembly;
 1970 - Desenvolvimento da linguagem B, sucessora da anterior (o B é a 1ª letra de BCPL);
 1971 - Primeiro desenvolvimento da linguagem C, sucessora da anterior (o C é a 2ª letra de
BCPL);
 1973 - O sistema operativo UNIX é reescrito em linguagem C;
 1978 - Primeira edição do livro The C Programming Language, Kernighan & Ritchie;
 1983-1988 - Definição do ANSI C;
Sugerimos que o aluno realmente use o máximo possível dos exemplos, problemas e exercícios aqui
apresentados, gerando os programas executáveis com o seu compilador. Quando utilizamos o compilador
aprendemos a lidar com mensagens de aviso, mensagens de erro, bugs, etc. Apenas ler os exemplos não
basta. O conhecimento de uma linguagem de programação transcende o conhecimento de estruturas e
funções. O C exige, além do domínio da linguagem em si, uma familiaridade com o compilador e
experiência em achar "bugs" nos programas. É importante então que o leitor digite, compile e execute os
exemplos apresentados
.
CONSIDERAÇÕES INICIAIS E DICAS

Neste capítulo serão apresentadas algumas dicas importantes sobre a linguagem C e alguns comentários
iniciais para que possamos iniciar os primeiros programas.
Antes disso é necessário dizer algumas palavras sobre C++. Algumas vezes os novatos confundem o que é
C++ e como difere de C. C++ é uma versão estendida e melhorada de C que é projetada para suportar
programação orientada a objetos (OOP, do inglês Object Oriented Programming). C++ contém e suporta
toda linguagem C e mais um conjunto de extensões orientadas a objetos. Ou seja, C++ é um superconjunto
de C. Como C++ é construída sobre os fundamentos de C, você não pode programar em C++ se não entender
C.

SINTAXE
A sintaxe são regras detalhadas para cada construção válida na linguagem de programação. Estas regras
estão relacionadas com os tipos, as declarações, as funções e as expressões. Os tipos definem as
propriedades dos dados manipulados em um programa.

A linguagem C disponibiliza quatro tipos básicos que podem ser utilizados para a declaração de variáveis:

3 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261

Tipo Descrição Byt Intervalo de valores


es
Char Um único caráter 1 0 a 255
Int Números inteiros (sem casas 2 -2147483648 a+2147483647
decimais)
float Números em ponto flutuantes com 4 3,4.10-38 a 3,4.1038
precisão simples(7 casas decimais)
doub Números em ponto flutuante com 8 3,4.10-4932 a 1,1.10-
le precisão dupla (15 casas decimais) 4932

O C É "CASE SENSITIVE"
É importante ressaltar um ponto de suma importância: o C é "Case Sensitive", isto é, maiúsculas e
minúsculas fazem diferença. Se declarar uma variável com o nome talis ela será diferente de Talis, TALIS,
TaLis ou tAlIs. Isto quer dizer que C faz diferença das letras minúscula e maiúscula.

DIRETIVAS DE COMPILAÇÃO #INCLUDE


As diretivas dizem ao compilador para incluir na compilação do programa outros arquivos, geralmente
estes arquivos contem bibliotecas de funções ou rotinas da própria linguagem ou do usuário.

Sua sintaxe geral é: #include"nome_do_arquivo" ou #include <nome_do_arquivo>

ARQUIVO-CABEÇALHOS
Arquivos-cabeçalhos são aqueles que temos mandado o compilador incluir no início de nossos exemplos
e que sempre terminam em .h. A extensão .h vem de header (cabeçalho em inglês).

como stdio.h, conio.h, string.h. Estes arquivos, na verdade, não possuem os códigos completos das
funções. Eles só contêm protótipos de funções. É o que basta. O compilador lê estes protótipos e, baseado
nas informações lá contidas, gera o código correto. O corpo das funções cujos protótipos estão no arquivo-
cabeçalho, no caso das funções do próprio C, já estão compiladas e normalmente são incluídas no programa
no instante da "linkagem". Este é o instante em que todas as referências a funções cujos códigos não estão
nos nossos arquivos fontes são resolvidas, buscando este código nos arquivos de bibliotecas.

Nome do arquivo Descrições das funções


stdio.h Funções de entrada e saída (I/O)
string.h Funções de tratamento de strings
math.h Funções matemáticas
ctype.h Funções de teste e tratamento de caracteres
stdlib.h Funções de uso genérico
conio.h Funções para controle da tela

4 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
PALAVRAS RESERVADAS DO C
Todas as linguagens de programação têm palavras reservadas. As palavras reservadas não podem ser
usadas a não ser nos seus propósitos originais, isto é, não podemos declarar funções ou variáveis com os
mesmos nomes. Como o C é "case sensitive" podemos declarar uma variável For, apesar de haver uma
palavra reservada for, mas isto não é uma coisa recomendável de se fazer, pois pode gerar confusão.

Apresentamos a seguir as palavras reservadas do ANSI C. Veremos o significado destas palavras chave à
medida que o curso for progredindo:
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

ARGUMENTOS
Argumentos são as entradas que a função recebe. É através dos argumentos que passamos parâmetros
para a função.

As funções printf() e scanf() são funções que recebem argumentos. Vamos ver ao decorrer da formação
exemplo de função com argumentos:

Função printf()

O objetivo de escrevermos programas é em última análise, a obtenção de resultados (Saídas) depois da


elaboração de cálculos ou pesquisas (Processamento) através do fornecimento de um conjunto de dados
ou informações conhecidas (Entradas).

É outro dos mais poderosos recursos da linguagem C, printf() servirá basicamente para a apresentação de
dados no monitor. Sua forma geral será:

printf(“string de controle”, lista de argumentos);

Necessariamente você precisará ter tantos argumentos quantos forem os comandos de formatação na
“string de controle”. Se isto não ocorrer, a tela exibirá sujeira ou não exibirá qualquer dado.
Os caracteres a serem utilizados pelo printf() em sua <string de controle>, no momento serão os mesmos
de scanf().

5 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
Tabela contendo códigos de formatação para printf e scanf

Código Printf Scanf


%d imprime um inteiro decimal lê um inteiro decimal
%f ponto decimal flutuante lê um numero com ponto flutuante
%lf ponto flutuante lê um número com ponto flutuante
%s string de caracteres lê uma string de caracteres
%c um único caractere lê um único caractere
%i Decimal lê um inteiro decimal
%p imprime um ponteiro lê um ponteiro
%e notação cientifica lê um numero com ponto flutuante
%% imprime % na tela

Função scanf()

Uma das mais importantes e poderosas instruções servirá basicamente para promover leitura de dados
(tipados) via teclado.
Sua forma geral será: scanf(“string de controle”, lista de argumentos);
A lista de argumentos deve conter exatamente o mesmo número de argumentos quantos forem os códigos
de formatação na <string de controle>. Se este não for o caso, diversos problemas poderão ocorrer -
incluindo até mesmo a queda do sistema - quando estivermos utilizando programas compilados escritos em
C. Felizmente ao utilizarmos o C, apenas uma mensagem de erro será apresentada, para que possamos
corrigir o programa sem outros inconvenientes.
Cada variável a ser lida, deverá ser precedida pelo caracter &. Para sequência de caracteres (%s), o caracter
& não deverá ser usado.

A tabela abaixo exibe outras funções que podem ser utilizadas para entrada de dados, ou seja funções de
leitura:

Função Operação
getchar ( ) lê um caractere; espera por <enter>
getche ( ) lê um caractere com eco; não espera por <enter>
getch ( ) lê um caractere sem eco; não espera por <enter>
putchar ( ) Imprime um caractere na tela
gets ( ) lê uma string via teclado
puts ( ) Imprime uma string na tela

! Devido à forma como a função scanf trata o buffer (área de armazenamento temporária) de entrada,
quando ela for utilizada em conjunto com as demais funções de leitura é aconselhável sempre limpar
este buffer com fflush(stdin);

6 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
Problema fazer um programa que aceita fazer acentuações nas palavras
#include <stdio.h>
#include <locale.h>
main(){
setlocale(LC_ALL,"Portuguese");
puts("Técnica de Linguagem de programação");
puts("Ministrado por Sebastião da Cruz");
getchar();
}

Função messagebox()

O que faz…
1. Exibe no écran uma janela com uma mensagem.
2. Espera que o utilizador acione o botão.
3. Como é uma função produz um valor final.

Problema fazer um programa para exibir uma caixa de dialogo

#include<windows.h>
#include <locale.h>
#include <conio.h>
main(){
setlocale(LC_ALL,"Portuguese");
MessageBox (0,"Eng Sebastião da Cruz Miranda", "Resultado", MB_ICONINFORMATION);
getch( );
}

Função Beep()

É uma função para emissão de som, antes de ser implementado no corpo do programa primeiro deves
incluir no programa a biblioteca Windows.h

Sua sintaxe é: Beep(frequência, tempo).

Exemplo: Beep(261,800);); faz um som com uma frequência de 261 hertz e com o tempo de 800
milissegundos de duração.

Problema fazer um programa para emitir o som do ré mi fá sola si do

#include "windows.h"
#include <locale.h>
int main(){
setlocale(LC_ALL,"Portuguese"); // ceita asetuação
system("color 42"); //Padroniza a cor do sistema, aqui nem influencia muito.

7 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
system("MODE con cols=54 lines=29"); //Redimensiona a tela
system("title Sebastião da Cruz - Engenharia Informática"); //Dá título a tela
puts("Autor -> Eng Sebastião da Cruz Miranda");
Beep(261,800);
Beep(293,800);
Beep(329,800);
Beep(349,800);
Beep(392,800);
Beep(493,800);
Beep(490,1500);
system("pause");
}

Problema fazer um programa para emitir o som de parabéns de aniversario

#include <stdio.h>
//#include <conio.h>
//#include <windows.h>
int main(){
printf("Tucando a cancao Parabens ");
Beep(529,300);//pa
Beep(528,300);//ra
Beep(594,500);//béns
Beep(528,500);//pra
Beep(704,400);//vo
Beep(660,1400);//cé

Beep(528,200);//nes
Beep(528,200);//ta
Beep(594,600);//data
Beep(528,600);//que
Beep(792,400);//ri
Beep(704,1400);//dez

Beep(880,200);//mui
Beep(880,200);//tas
Beep(1056,600);//fe
Beep(880,400);//li
Beep(704,400);//ci
Beep(660,400);//da
Beep(594,1300);//des

Beep(933,200);//muitos
Beep(933,200);//a

8 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
Beep(880,600);//nos
Beep(704,600);//de
Beep(792,600);//vi
Beep(704,1600);//da
getch();
return 0;
}

OPERADORES
Neste capítulo são apresentadas tabelas com os operadores da linguagem C: aritméticos, relacionais e
lógicos.

Operadores aritméticos

São utilizados para efetuar as operações aritméticas com os seus operandos. Estes operandos podem ser
utilizados com qualquer tipo de dados, exceto o resto da divisão, o qual não pode ter operandos em ponto
flutuante.

Operador Descrição
= Atribuição
+ Soma
- Subtração
* Multiplicação
/ Divisão (se os dois valores forem int, o resultado não terá casas decimais)
% Resto da divisão inteira
++ Incremento pré ou pós-fixado
-- Decremento pré ou pós-fixado

Operadores relacionais
Os operadores relacionais são utilizados em expressões condicionais para a comparação do valor de
duas expressões.
Operador Descrição
> Maior que
>= Maior ou igual
à
< Menor que
<= Menor ou igual
à
== Igual à
!= Diferente de

9 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
Operadores lógicos
Os operadores lógicos são utilizados para conectar expressões lógicas sendo geralmente utilizados em
expressões condicionais.

Operador Descrição
&& AND lógico
|| OR lógico
! NOT lógico

Operadores combinados

Sempre que em um programa C aparece uma expressão onde o resultado da operação está sendo atribuída
para o seu primeiro operando (da esquerda), conforme o formato x = x op y; esta expressão pode ser
reduzida para o formato x op= y;
Expressão Expressão
Normal Simplificada
a = a + b; a+=b;

a = a - b; a-=b;
a = a * b; a*=b;

a = a / b; a/=b;
a = a % b; a%=b;

INICIALIZAÇÃO
Inicialização corresponde a definir um valor inicial para a variável, o qual será armazenado no momento em
que a variável é criada. A inicialização de uma variável pode ser feita com uma constante, expressão ou
função.

Exemplo:

char nome []= "sebastião da Cruz Miranda"; ou tel =935457261;

O Exemplo aseguir sera exibir os dados citados em cima

#include<stdio.h>

#include<stdlib.h>

int main () {

char nome []= "sebastião da Cruz Miranda";

int numero= 935457261;

10 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("\t\t\tSEJAS BEM VINDO AO MEU PERFIL\n\n\n");

printf ("\t\t""""""""""""""""""""""""""""""""""""""""""\n");

printf ("\t\tEu sou ==> %s meu numero de telefone %d \n",nome,numero);

printf ("\t\t""""""""""""""""""""""""""""""""""""""""""\n\n");

system ("pause > null");

Especificando cór no programa

/* Problema: O custo ao consumidor de um carro novo, é a soma do custo de fábrica com a


percentagem do revendedor e com o custo dos impostos (aplicados ao custo de fábrica). Supondo que
a percentagem do revendedor seja de 25% do custo de fábrica e que os impostos custam 45 % do custo
de fábrica, faça um algoritmo que leia o valor de custo de fábrica e determine o preço final do automóvel
(custo ao consumidor).
*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
float custo_fabrica, perc_revendedor, impostos, preco_final;
system("color 24");
printf("\nEntre com o custo de fabrica.: ");
scanf("%f",&custo_fabrica);

11 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
perc_revendedor = (25 * custo_fabrica) / 100;
impostos = (45 * custo_fabrica) / 100;
preco_final = custo_fabrica + perc_revendedor + impostos;
printf("\n O custo de fabrica .........: %f",custo_fabrica);
printf("\n O percentual do revendedor .: %f",perc_revendedor);
printf("\n Os impostos ................: %f",impostos);
printf("\n O preco final ..............: %f",preco_final);
printf("\n\n\\n....Autor Sebastiao da Cruz Miranda .........");
getch(); // esperar uma tecla
}

/* Problema.: Uma Empresa de vendas de softwares paga a seu vendedor um salario fixo de 1200,00
por mês, mais uma comissão de 15% pelo seu valor de vendas no mês. Faça uma algoritmo
que leia o valor da venda e determine o salário total do funcionário. Mostre as
informações que você achar necessário.
*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
main()
{
float fixo, comissao, vendas_mes, salario_total;
fixo = 1200;
system("color 24");
printf("\nDigite o valor da venda no mes ");
scanf("%f",&vendas_mes);
comissao = (vendas_mes * 15) / 100;
salario_total = fixo + comissao;
printf("\nO salário fixo = %f",fixo);
printf("\no valor de comissao = %f",comissao);

12 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf("\no salario total = %f",salario_total);
printf("\n\n\\n....Autor Sebastiao da Cruz Miranda .........");
getch(); // esperar uma tecla
}

FUNÇÃO INTERNA DA LINGUAGEM C

Sendo que a lista de argumentos pode ser vazia. A tabela a seguir apresenta algumas das funções
predefinidas dos compiladores C, indicando o tipo dos seus argumentos e comentando o seu valor de
retorno.

Exercicios Propostos

1ª Construa um programa que calcule a seguinte equação 3x+7+2=0


1ª Construa um programa que calcule o Cosseno, seno e tangente de um número
2ª Construa um programa que calcule raízes de um polinômio de grau dois. O polinômio é da forma:
AX2 + BX + C = 0, Relembrando: A,B são coeficientes da equação, C é termo independente
Resolver uma equação do 2ª grau é encontrar os valores que se colocados no lugar da variável X, tornam
a sentença verdadeira.

Passagem de parâmetros por valor

Já vimos que, na linguagem C, quando chamamos uma função os parâmetros formais da função copiam
os valores dos parâmetros que são passados para a função. Isto quer dizer que não são alterados os valores
que os parâmetros têm fora da função. Este tipo de chamada de função é denominado chamada por valor.
Isto ocorre porque são passados para a função apenas os valores dos parâmetros e não os próprios
parâmetros.

/* Exemplo do uso comum de uma função, com chamada por valor */

13 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
#include <stdio.h>
float sqr (float num);
main (void)
{
float num,sq;
printf ("Entre com um numero: ");
scanf ("%f",&num);
sq=sqr(num);
printf ("\n\nO numero original e: %f\n",num);
printf ("O seu quadrado vale: %f\n",sq);
}
float sqr (float num)
{
num=num*num;
return num;
}

Passagem de parâmetros por Referência

Permite a alteração do valor de uma variável. Para isso é necessário a passagem do endereço do
argumento para a função.
/* Exemplo do uso de uma função, com passagem de parâmetros por referência */

#include <stdio.h> void


talis (int *a,int *b);
int main (void)
{
int num1,num2; num1=100; num2=200; talis
(&num1,&num2); printf ("\n\nEles agora valem %d
%d\n",num1,num2);
}
void talis (int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}

COMANDOS DE CONTROLE DE FLUXO

Os Comandos de controles de Fluxo é fundamental para a linguagem de programação, pois sem elas, não
haveria condições, repetições ou saltos. A linguagem C possui diversos comandos de controle de fluxo. É

14 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
possível resolver todos os problemas sem utilizar todas elas, mas devemos nos lembrar que a elegância e
facilidade de entendimento de um programa dependem do uso correto das estruturas no local certo.

O comando if aliados
O comando if representa uma tomada de decisão do tipo "SE isto ENTÃO aquilo". A sua
forma geral é:

if (condição) {
bloco de saida;
}

// Compara se o número que será digitado se é positivo ou negativo

#include <stdio.h>
#include <stdlib.h> int
main ()
{
int num;
printf ("Digite um numero: ");
scanf ("%d",&num);
if (num>0)
printf ("\n\nO numero e Positivo observa %i ",num); if
(num==0)
printf ("\n\n Voce Digitou o numero Zeor! observa %i \n ",num);
if (num<0)
printf ("\n\nO numero e Negativo observa %i ",num);
system("pause > null");
return false;
}

O comando else
Podemos pensar no comando else como sendo um complemento do comando if:

A sua sintaxe é: if
(condição) {
bloco de saida;
} e if (condição) {
bloco de saida;
}else{
bloco de saida;
}

15 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int ano, mes, dias;
printf("Indique ano: ");
scanf("%d", &ano);
printf("Indique mes: ");
scanf("%d", &mes);
system ("color c5");
if(mes==2)
if(ano%400==0 || ano%4==0 && ano%100!=0)
printf("29 Dias");
else
printf("28 Dias");
else if(mes==1 || mes==3 || mes==5 || mes==7 ||
mes==8 || mes==10 || mes==12)
printf("31 Dias");
else if(mes!=2)
printf("30 Dias");
else
printf("erro");
system ("pause > null");
}

// compara se o ano é Bissexto ou Normal

#include <stdio.h>
int Bissexto(int ano)
{
return ano%400==0 || ano%4==0 && ano%100!=0;
}
int main()
{ int ano;
printf("Indique ano: ");
scanf("%d", &ano); /*
teste de ano bissexto */
if(Bissexto(ano))
printf("Bissexto");
else
printf("Normal");
}

16 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
O comando switch

O comando if-else e o comando switch são os dois comandos de tomada de decisão. Sem dúvida alguma o
mais importante dos dois é o if, mas o comando switch tem aplicações valiosas. Mais uma vez vale lembrar
que devemos usar o comando certo no local certo. Isto assegura um código limpo e de fácil entendimento.
O comando switch é próprio para se testar uma variável em relação a diversos valores préestabelecidos.
Sua forma geral é: switch (variável)
{
case constante_1:
declaração_1;
break; case
constante_2:
declaração_2;
break; case
constante_n:
declaração_n;
break; default
declaração_default;
}
Podemos fazer uma analogia entre o switch e a estrutura if-else-if já visto acima. A diferença fundamental
é que a estrutura switch não aceita expressões. Aceita apenas constantes. O switch testa a variável e executa
a declaração cujo case corresponda ao valor atual da variável. A declaração default é opcional e será
executada apenas se a variável, que está sendo testada, não for igual a nenhuma das constantes.

#include <stdio.h>
#include <conio.h>
main() {
char x ;
puts("Selecione a opção:\n t - Mostrar teclado Virtuall\n c - Mostrar Calculadora Cientifica\n ");
x=getch( );
switch (x) {
case 't' :
puts("selecionou teclado Virtuall");
system("osk");
break ;
case 'c' :
puts("Calculadora Cientifica");
system("calc");
break ;
default :
puts("escolheu uma opção inválida.");
}
getch( );
}

17 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
O comando for

for é a primeira de uma série de três estruturas para se trabalhar com loops de repetição. As outras são
while e do while. As três compõem a segunda família de comandos de controle de fluxo. Podemos
pensar nesta família como sendo a das estruturas de repetição controlada.

Como já foi dito, o loop for é usado para repetir um comando, ou bloco de comandos, diversas vezes, de
maneira que se possa ter um bom controle sobre o loop. Sua forma geral é:

for (inicialização; condição; incremento) {

bloco de saída;

}
/* Exemplo que coloca 9 vezes do Outor => Sebastiao da Cruz Miranda na tela */

#include <stdio.h>
#include <stdlib.h>
int main ()
{ int
outor;
for (outor=1; outor <=9; outor++)
printf ("\t\t\t%d Outor => Sebastiao da Cruz Miranda\n",outor);
system ("color b9");
system ("pause > null");
}

O comando while

O comando while tem a seguinte forma geral:

While (condição) {
bloco de saída;
incremento ou decremento;
}

#include <stdio.h>
int main ()
{
int a=1;
while ( a < 8)
{
printf(" %d Biatriz da Cruz Miranda \n", a);
a++;

18 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
}
return(0);
}
O comando do-while

A terceira estrutura de repetição que veremos é o do-while de forma geral: do


{
bloco de saída;
Incremento ou decremento;
} while (condição);

#include <stdio.h>
#include <stdlib.h>
int main ()
{
int n=1;
system("color f2");
do
{
printf(" %d Isaura Vauquiria \n", n);
n++;
}while ( n <= 9);
return(0);
}

/*Problema: Crie um algoritmo que mostre os 10 primeiros numeros primos*/


#include <conio.h>
#include <stdio.h>
main()
{
int numero,contador,i,conta_primos;
numero = 1;
conta_primos = 0;
while(conta_primos < 10)
{
contador = 0;
numero++;
i = 2;
while((i <= (numero/2)) && (contador == 0))
{
if (numero % i == 0)

19 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
contador = contador +1;
i++; //i=i+1;
}
if (contador == 0)
{
conta_primos++;
printf("\nO numero %d e %d. numero primo",numero, conta_primos);
}
}
printf("\n\n\\n....Autor Sebastiao da Cruz Miranda .........");
getch(); // esperar uma tecla
}

/*Problema: Crie um algoritmo que leia um numero inteiro, e diga se ele é um numero primo ou não.*/
#include <conio.h>
#include <stdio.h>
main()
{
int numero,contador,i;
contador = 0;
i = 2;
printf("Digite um número .: ");
scanf("%d",&numero);
while((i <= (numero/2)) && (contador == 0))
{
printf("%d",i);
if (numero % i == 0)
contador = contador +1;
i=i+1;
}
if (contador > 0)
printf("\nO numero %d nao e primo",numero);
else
printf("\nO numero %d e primo",numero);
printf("\n\n\\n....Autor Sebastiao da Cruz Miranda .........");
getch(); // esperar uma tecla
}

20 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
Goto

Vamos mencionar o goto apenas para que você saiba que ele existe. O goto é o último
comando de controle de fluxo. Ele pertence a uma classe à parte: a dos comandos de salto
incondicional. O goto realiza um salto para um local especificado. Este local é determinado
por um rótulo. Um rótulo, na linguagem C, é uma marca no programa. Você dá o nome que
quiser a esta marca. Podemos tentar escrever uma forma geral:
nome_do_rótulo:
....
goto nome_do_rótulo;

Devemos declarar o nome do rótulo na posição para a qual vamos dar o salto seguido de: O goto pode
saltar para um rótulo que esteja mais à frente ou para trás no programa. Uma observação importante é
que o rótulo e o goto devem estar dentro da mesma função.

Problema faça a saída do maior e menor número numa quantidade de número informado pelo
usuário.
#include<stdio.h>
#include<stdlib.h>
int main(){
int
n,maior,menor,cont=0,qnt=0;
system("color b2"); vau:
printf("Informe a qntidade desejada: => ");
scanf("%d",&qnt);
if(qnt <=1){
printf("\n Impossivel fazer a o peracao\n");

printf("\nA quantidade deve ser maior que zero\n ");


goto vau;
}
else{
while(cont < qnt){
printf("\n\n Digite o numero %d => ",cont +1);
scanf("%d",&n);
if(cont ==0){
menor =n;
maior =n;
}
if(maior < n){
maior =n;
}
if(menor > n){
menor=n;

21 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
}
cont++;
}
printf("\n\n\n Relatorio \n\n o maior numero e %d \n",maior);
printf("o menor numero e %d ",menor);
}
system("pause > null");
}

Problema fazer um programa que exibe três opções de operação que são: soma, multiplicação e
subtração e só deverá terminar se o resultado for igual e menor de 20.

#include<windows.h>
#include <stdio.h>
#include <conio.h>
main()
{
isaura:
char x;
int a,b,c,d;
talis:
printf("Informe o valor de A :==> ");
scanf("\n%d",&a);
printf("Informe o valor de B :==> ");
scanf("\n%d",&b);
puts("\t\n\n\tSelecione a operacao:\n\n|+ => Soma |\n|- => Sobtrair |\n|*- => Multiplicar|\n| /
=> Divisao |\n\n ");
x=getch( );
switch (x) {
case '*':
puts("Você selecionou Multiplicacao");
c=a*b;
printf(" %d X %d = %d ",a,b,c);
break ;
case '+' :
puts("Voce selecionou Soma");
c=a+b;
printf(" %d + %d = %d ",a,b,c);
break ;
case '/':
puts("Voce selecionou Divisao");
c=a/b;
printf(" %d / %d = %d ",a,b,c);
break ;

22 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
case '-':
puts("Voce selecionou Sobtrair");
c=a-b;
printf(" %d - %d = %d ",a,b,c);
break ;
default :
puts("Voce escolheu uma opcao invalida.\n informe a opcao correta");
system("cls");
}
if(c>20){
d=23;
while(d>20){
printf("\n\nInforme o valor de A :==> ");
scanf("\n%d",&a);
printf("Informe o valor de B :==> ");
scanf("\n%d",&b);
puts("\t\n\n\tSelecione a opcao:\n| + => Soma |\n| ");
puts("- => Sobtrair\n| *- => Multiplicar\n| / => Divisao\n\n ");
x=getch( );
switch (x) {
case '*':
puts("Voce selecionou Multiplicacao");
d=a*b;
printf(" %d x %d = %d ",a,b,d);
break ;
case '+' :
puts("Voce selecionou Soma");
d=a+b;
printf(" %d + %d = %d ",a,b,d);
break ;
case '/':
puts("Voce selecionou Sobtrair");
d=a/b;
printf(" %d / %d = %d ",a,b,d);
break ;
case '-':
puts("Voce selecionou Divisao");
d=a-b;
printf(" %d - %d = %d ",a,b,d);
break ;
default :
puts("Voce escolheu uma opcao invalida.\n informe a opcao correta");
system("cls");
goto talis;

23 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
}
}
}else
MessageBox (0,"O calculo foi Inferior a 20 nao es permitido \n exicutar outra operacao!\n\n
Sebastiao da Cruz Miranda", "Resultado", MB_ICONINFORMATION);
getch( );
}

VARIÁVEIS INDEXADAS UNIDIMENSIONAIS (VETORES)


Vetores nada mais são que matrizes unidimensionais. Vetores são uma estrutura de dados muito utilizada.
É importante notar que vetores, matrizes bidimensionais e matrizes de qualquer dimensão são
caracterizadas por terem todos os elementos pertencentes ao mesmo tipo de dado. Para se declarar um
vetor podemos utilizar a seguinte forma geral:

tipo_da_variável nome_da_variável [tamanho];

/*Problema: Crie um algoritmo lendo dois vetores (A e B) de 5 elementos cada do tipo inteiro,
liste os elementos destes dois vetores. Faça com que os elementos do vetor A passem para
o vetor B, e os elementos do vetor B passem para o vetor A. Mostre os 2 vetores atualizados.*/

#include "stdio.h"
#include"stdlib.h"
main(void)
{
int matrix[3][3];
int col,lin,t=0,l3=0;
for (lin=0;lin<3;lin++)
for (col=0;col<3;col++)
{
printf("Informe o valor da LINHA:%d, COLUNA: %d -> ",lin+1,col+1);
scanf("%d",&matrix[lin][col]);
t=t+matrix[lin][col];

}
system("cls");
for (lin=0;lin<3;lin++)
{
printf("\n\n");
for (col=0;col<3;col++)
printf("%5.d",matrix[lin][col]);
}
for (lin=0;lin<3;lin++)
l3=l3+matrix[lin][2];

24 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf("\n Total dos Numeros %d \n",t);
printf("Soma de C3 %d",l3);
return 0;
}

#include <conio.h>
#include <stdio.h>
main()
{
int A[] = {9,3,7,6,21};
int B[] = {6,4,9,2,28};
int C[5];
printf("\nValores Originais");
for(int i=0;i <= 4;i++)
{
printf("\nA[%d] = %d - ",i,A[i]);
printf("\nB[%d] = %d - ",i,B[i]);
}
for(int i=0;i <= 4;i++)
{
C[i] = A[i];
A[i] = B[i];
B[i] = C[i];
};
printf("\n\nValores Trocados");
for(int i=0;i <= 4;i++)
{
printf("\nA[%d] = %d - ",i,A[i]);
printf("\nB[%d] = %d - ",i,B[i]);

}
printf("\n\n\\n.................FIM..................");
getch(); // esperar uma tecla
}

/*Problema: Crie um algoritmo lendo um vetor A de 15 elementos do tipo inteiro.


Mostre esses elementos do vetor A. Reordene os elementos em ordem decrescente,
atualize o vetor A com os elementos na ordem decrescente e mostre novamente o vetor A.*/

#include <conio.h>
#include <stdio.h>
main()
{
int A[] = {9,3,7,6,21,50,45,36,2,8,7,9,42,32,18};

25 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
int Aux;
for(int j=0;j <= 14;j++)
printf("\nA[%d] = %d",j,A[j]);
for(int j=0;j <= 13;j++)
for(int i=0;i <= 13;i++)
if (A[i] < A[i+1])
{
Aux = A[i];
A[i] = A[i+1];
A[i+1] = Aux;
};
printf("\n\nValores Ordenados");
for(int j=0;j <= 14;j++)
printf("\nA[%d] = %d",j,A[j]);
printf("\n\n\\n.................FIM..................");
getch(); // esperar uma tecla
}

/*Problema: Crie um algoritmo lendo um vetor A de 15 elementos do tipo inteiro.


Mostre esses elementos do vetor A. Reordene os elementos em ordem crescente,
Atualize o vetor A com os elementos na ordem crescente e mostre novamente o vetor A.*/

#include <conio.h>
#include <stdio.h>
main()
{
int A[] = {9,3,7,6,21,50,45,36,2,8,7,9,42,32,18};
int Aux;
for(int j=0;j <= 14;j++)
printf("\nA[%d] = %d",j,A[j]);
for(int j=0;j <= 13;j++)
for(int i=0;i <= 13;i++)
if (A[i] > A[i+1])
{
Aux = A[i];
A[i] = A[i+1];
A[i+1] = Aux;
};
printf("\n\nValores Ordenados");
for(int j=0;j <= 14;j++)
printf("\nA[%d] = %d",j,A[j]);
printf("\n\n\\n.................FIM..................");
getch(); // esperar uma tecla
}

26 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
VARIÁVEIS INDEXADAS BIDIMENSIONAIS (MATRIZES)

Já vimos como declarar matrizes unidimensionais (vetores). Vamos tratar agora de matrizes
bidimensionais. A forma geral da declaração de uma matriz bidimensional é muito parecida com a
declaração de um vetor: tipo_da_variável nome_da_variável [altura][largura];

É muito importante ressaltar que, nesta estrutura, o índice da esquerda indexa as linhas e o da direita
indexa as colunas. Quando vamos preencher ou ler uma matriz no C o índice mais à direita varia mais
rapidamente que o índice à esquerda. Mais uma vez é bom lembrar que, na linguagem C, os índices
variam de zero ao valor declarado, menos um; mas o C não vai verificar isto para o usuário. Manter os
índices na faixa permitida é tarefa do programador.

// Problema: criar uma matriz de dimensão 3 x 3 percorrer toda a matriz, somar


todos os elementos e somar os elementos da última coluna.

#include "stdio.h"
#include"stdlib.h"
main(void)
{
int matrix[3][3];
int col,lin,t=0,l3=0;
for (lin=0;lin<3;lin++)
for (col=0;col<3;col++)
{
printf("Informe o valor da LINHA:%d, COLUNA: %d -> ",lin+1,col+1);
scanf("%d",&matrix[lin][col]);
t=t+matrix[lin][col];

}
system("cls");
for (lin=0;lin<3;lin++)
{
printf("\n\n");
for (col=0;col<3;col++)
printf("%5.d",matrix[lin][col]);
}
for (lin=0;lin<3;lin++)
l3=l3+matrix[lin][2];
printf("\n Total dos Numeros %d \n",t);
printf("Soma de C3 %d",l3);
return 0;
}

A função gets

A função gets() lê uma string do teclado. Sua forma geral é:


gets (nome_da_string);
O programa abaixo demonstra o funcionamento da função gets():

27 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
Função strlen
Sua forma geral é: strlen
(string);
A função strlen() retorna o comprimento da string fornecida. O terminador nulo não é
contado. Isto quer dizer que, de fato, o comprimento do vetor da string deve ser um a mais que
o inteiro retornado por strlen(). Um exemplo do seu uso:

//1ª Caso Calcula qntas vogais tem o nome digittado


#include<stdio.h>
#include<string.h>
main() {
char nome[20];
int x,t,soma=0;
printf("Digite um nome: ");
gets(nome);
t=strlen(nome);
for(x=0;x<=t;x++)
if(nome[x]=='a' || nome[x]=='A' || nome[x]=='e' || nome[x]=='E' ||
nome[x]=='i' || nome[x]=='I' || nome[x]=='o' || nome[x]=='O' ||
nome[x]=='u' || nome[x]=='U')
soma++;
printf("\n O nome %s tem %d vogais: ",nome,soma);
return true;
}

//2ª Caso busca as posições das letras de um nome


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char nome[30];
int x,y=0,tam;
printf("\n\n DIGITE UM NOME: ");
gets(nome); tam=strlen(nome);
printf("\n\t\tO nome digitado eh: %s ",nome);
printf("\n\nNa posicao [%d] o primeiro caracter digitado eh: %c ",y, nome[0]);
printf("\n\nNa posicao [%d] o ultimo caracter digitado eh: %c ",(y=tam-1)); nome[tam-1];
printf("\n\nNa posicao [%d] esta o quarto caracter digitado eh: %c ",y=3, nome[3]);
printf("\n\n Na posicao do primeiro ao terceiro caracter : ");
printf(" qualquer coisa ");
for(x=0;x<=2;x++) {
printf("\n[%d] %c ",x=x+0,nome[x]);

28 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
}
printf("\n");
printf("\nNa posicao do primeiro ao ultimo caracter : ");
for(x=0;x<=tam-1;x++)
printf("\n[%d] %c ",x=x+0,nome[x]);
printf("\n\n");
system("pause");
return(0);
}
Função strcmp

Sua forma geral é:


strcmp (string1,string2);
A função strcmp() compara a string 1 com a string 2. Se as duas forem idênticas a função
retorna zero. Se elas forem diferentes a função retorna não-zero. Um exemplo da sua
utilização:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main ()
{
char nome1[100],nome2[100];
printf ("Entre com uma string: ");
gets (nome1);
printf ("\n\nEntre com outra string: ");
gets (nome2);
if (strcmp(nome1,nome2))
printf ("\n\nAs duas strings sao diferentes."); else
printf ("\n\nAs duas strings sao iguais.");
system("pause > null");
}

PONTEIROS

Como Funcionam os Ponteiros


Os ints guardam inteiros. Os floats guardam números de ponto flutuante. Os chars guardam caracteres.
Ponteiros guardam endereços de memória. Quando você anota o endereço de um colega você está criando
um ponteiro. O ponteiro é este seu pedaço de papel. Ele tem anotado um endereço. Qual é o sentido disto?
Simples. Quando você anota o endereço de um colega, depois você vai usar este endereço para achá-lo. O
C funciona assim. Você anota o endereço de algo numa variável ponteiro para depois usar.

Da mesma maneira, uma agenda, onde são guardados endereços de vários amigos, poderia ser vista como
sendo uma matriz de ponteiros no C.

29 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
Um ponteiro também tem tipo. Veja: quando você anota um endereço de um amigo você o trata diferente
de quando você anota o endereço de uma firma. Apesar de o endereço dos dois locais ter o mesmo
formato (rua, número, bairro, cidade, etc.) eles indicam locais cujos conteúdos são diferentes. Então os
dois endereços são ponteiros de tipos diferentes.

No C quando declaramos ponteiros nós informamos ao compilador para que tipo de variável vamos
apontá-lo. Um ponteiro int aponta para um inteiro, isto é, guarda o endereço de um inteiro.

Declarando e Utilizando Ponteiros

Para declarar um ponteiro temos a seguinte forma geral: tipo_do_ponteiro *nome_da_variável;


É o asterisco (*) que faz o compilador saber que aquela variável não vai guardar um valor mas sim um
endereço para aquele tipo especificado. Vamos ver exemplos de declarações:
int *pt;
char *temp,*pt2;
O primeiro exemplo declara um ponteiro para um inteiro. O segundo declara dois ponteiros para
caracteres. Eles ainda não foram inicializados (como toda variável do C que é apenas declarada). Isto
significa que eles apontam para um lugar indefinido. Este lugar pode estar, por exemplo, na porção da
memória reservada ao sistema operacional do computador.

Usar o ponteiro nestas circunstâncias pode levar a um travamento do micro, ou a algo pior. O ponteiro
deve ser inicializado (apontado para algum lugar conhecido) antes de ser usado! Isto é de suma
importância!
Para atribuir um valor a um ponteiro recém-criado poderíamos igualá-lo a um valor de memória. Mas,
como saber a posição na memória de uma variável do nosso programa? Seria muito difícil saber o
endereço de cada variável que usamos, mesmo porque estes endereços são determinados pelo compilador
na hora da compilação e realocados na execução. Podemos então deixar que o compilador faça este
trabalho por nós. Para saber o endereço de uma variável basta usar o operador &. Veja o exemplo: int
count=10; int *pt;
pt=&count;
Criamos um inteiro count com o valor 10 e um apontador para um inteiro pt. A expressão &count nos dá
o endereço de count, o qual armazenamos em pt. Simples, não é? Repare que não alteramos o valor de
count, que continua valendo 10. Como nós colocamos um endereço em pt, ele está agora "liberado" para
ser usado. Podemos, por exemplo, alterar o valor de count usando pt. Para tanto vamos usar o operador
"inverso" do operador &. É o operador *. No exemplo acima, uma vez que fizemos pt=&count a
expressão *pt é equivalente ao próprio count. Isto significa que, se quisermos mudar o valor de count
para 12, basta fazer *pt=12.

Vamos fazer uma pausa e voltar à nossa analogia para ver o que está acontecendo. Digamos que exista
uma firma. Ela é como uma variável que já foi declarada. Você tem um papel em branco onde vai anotar
o endereço da firma. O papel é um ponteiro do tipo firma. Você então liga para a firma e pede o seu
endereço, o qual você vai anotar no papel. Isto é equivalente, no C, a associar o papel à firma com o
operador &. Ou seja, o operador & aplicado à firma é equivalente a você ligar para a mesma e pedir o
endereço. Uma vez de posse do endereço no papel você poderia, por exemplo, fazer uma visita à firma.

30 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
No C você faz uma visita à firma aplicando o operador * ao papel. Uma vez dentro da firma você pode
copiar seu conteúdo ou modificá-lo.

Uma observação importante: apesar do símbolo ser o mesmo, o operador * (multiplicação) não é o mesmo
operador que o * (referência de ponteiros). Para começar o primeiro é binário, e o segundo é unário pré-
fixado. Aqui vão dois exemplos de usos simples de ponteiros:

#include <stdio.h> #include


<stdlib.h>
int main ()
{
int num,valor;
int *p;
num=55;
p=&num;
/* Pega o endereco de num */ valor=*p;
/* Valor e igualado a num de uma maneira indireta */ printf
("\n\n%d\n",valor);
printf ("Endereco para onde o ponteiro aponta: %p\n",p); system
("color 2");
printf ("Valor da variavel apontada: %d\n",*p);
system ("pause > null");
}

INTRODUÇÃO ÀS FUNÇÕES

Uma função é um bloco de código de programa que pode ser usado diversas vezes em sua execução. O
uso de funções permite que o programa fique mais legível, mais bem estruturado. Um programa em C
consiste, no fundo, de várias funções colocadas juntas.

Forma geral
Apresentamos aqui a forma geral de uma função:
tipo_de_retorno nome_da_função(lista_de_argumentos)
{
código_da_função
}

//Ler 2 números, efetuar as 4 operações matemáticas e mostrar os resultados. C/ parametros

#include <conio.h>
#include <stdio.h>
void leitura();
void calculos(float pn1, float pn2);
void imprimir(float mult, float div, float sub, float som);

31 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
float num1, num2, multiplicacao, divisao, soma, subtracao;
main()
{
leitura();
calculos(num1, num2);
imprimir(multiplicacao, divisao, subtracao, soma);
printf("\n\n\\n.................FIM..................");
getch(); // esperar uma tecla
}
void leitura()
{
printf("Digite o numero 1 .: ");
scanf("%f",&num1);
printf("Digite o numero 2 .: ");
scanf("%f",&num2);
}
void calculos(float pn1, float pn2)
{
soma = pn1 + pn2;
subtracao = pn1 - pn2;
divisao = pn1 / pn2;
multiplicacao = pn1 * pn2;
}
void imprimir(float mult, float div, float sub, float som)
{
printf("\nA soma = %.0f",som);
printf("\nA divisao = %.0f",div);
printf("\nA multiplicacao = %.0f",mult);
printf("\nA subtracao = %.0f",sub);
}

//probela Ler 2 números, efetuar as 4 operações matemáticas e mostrar os resultados. C/ funções

#include <conio.h>
#include <stdio.h>
void leitura();
float somar(float pn1, float pn2);
float multiplicar(float pn1, float pn2);
float subtrair(float pn1, float pn2);
float dividir(float pn1, float pn2);
float num1, num2, multiplicacao, divisao, soma, subtracao;
main()
{
leitura();
printf("\\n\nA soma deu .: %f",somar(num1, num2));
printf("\nA multiplicacao deu .: %f",multiplicar(num1, num2));
printf("\nA subtracao deu .: %f",subtrair(num1, num2));
printf("\nA divisao deu .: %f",dividir(num1, num2));

32 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf("\n\n\\n.................FIM..................");
getch(); // esperar uma tecla
}
void leitura()
{
printf("Digite o numero 1 .: ");
scanf("%f",&num1);
printf("Digite o numero 2 .: ");
scanf("%f",&num2);
}
float somar(float pn1, float pn2)
{
soma = pn1 + pn2;
return(soma);
}
float multiplicar(float pn1, float pn2)
{
multiplicacao = pn1 * pn2;
return(multiplicacao);
}
float dividir(float pn1, float pn2)
{
divisao = pn1 / pn2;
return(divisao);
}
float subtrair(float pn1, float pn2)
{
subtracao = pn1 - pn2;
return(subtracao);
}

TIPOS DE DADOS DEFINIDOS PELO USUÁRIO

Estruturas
Uma estrutura agrupa várias variáveis numa só. Funciona como uma ficha pessoal que tenha nome,
telefone e endereço. A ficha seria uma estrutura. A estrutura, então, serve para agrupar um conjunto de
dados não similares, formando um novo tipo de dados.

Criação

Para se criar uma estrutura usa-se o comando struct. Sua forma geral é: struct
nome_do_tipo_da_estrutura
{
tipo_1 nome_1; tipo_2
nome_2;
...

33 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
tipo_n nome_n; }
variáveis_estrutura;

O nome_do_tipo_da_estrutura é o nome para a estrutura. As variáveis_estrutura são opcionais


e seriam nomes de variáveis que o usuário já estaria declarando e que seriam do tipo
nome_do_tipo_da_estrutura. Um primeiro exemplo:

// DadosAluno.c
#include <stdio.h>
#include <stdlib.h>

typedef struct {
unsigned short int dia, mes, ano;
}Data;
typedef struct {
unsigned int matricula;
char nome [60];
Data data;
}Aluno;
int main () {
Aluno aluno;
printf ("Digite a matricula \n");
scanf(" %hd",&aluno.matricula);
fflush (stdin);
printf ("Digite o seu nome completo: \n");
gets (aluno.nome);
printf ("Digete a data de nascimento (dd mm aaaa):");
scanf("%hu%hu%hu",&aluno.data.dia,&aluno.data.mes,&aluno.data.ano);
printf (" \n\n Dados do Aluno \n");
printf ("\n Matricula: %hd ",aluno.matricula);
printf ("\n Nome %s ",aluno.nome);
printf ("\n Data de Nascimento: %hu/%hu/%hu ", aluno.data.dia, aluno.data.mes, aluno.data.ano);
system ("pause > null");
}

PROJETOS EM ANEXOS:

Problema: fazer um programa para registrar dados de indivíduos e fazer pesquisa e listar em tempo real
#include <stdio.h>
#include <string.h> // Biblioteca para manipulação de strings
#include <stdlib.h>
#include <conio.h>
#include <ctype.h> //Biblioteca para manipulação de caracteres.

34 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
/*
typedef struct: declara variavel no caso vetor como tipo de estrutura
no caso abaixo declaro a agenda como estrutura contendo nome,Ncasa,rua,cidade,tel1 e tel2
*/
typedef struct Agenda
{
char nome[45],Numcasa[12],rua[30],cidade[20],telPrin[15],telSec[15];
}agenda;
// Protótipos
void Inserir();
void Imprimir();
void Pesquisar();
void Menu();
char Resposta();

static int qtd = 0;


agenda Tam[50];
FILE *file;

int main(){
Menu();
return 0;
system("pause>null");
}

//Função para incluir dados no arquivo agenda.txt

void Inserir(){
int som = 0, esc;
char opcao = 's';

if ((file = fopen("agenda.txt", "a")) == NULL)


{
printf ("Problema! Arquivo não pode ser aberto!\n");
getch();
exit(1);
}

while ((som < 35) && (opcao == 's'))


{

printf ("Nome: ");


gets(Tam[som].nome);
printf ("Numero da Casa: ");
gets(Tam[som].Numcasa);

35 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("Rua: ");
gets(Tam[som].rua);
printf ("Cidade: ");
gets(Tam[som].cidade);
printf ("Telefone Principal: ");
gets(Tam[som].telPrin);
printf ("Telefone Secundario: ");
gets(Tam[som].telSec);

esc = fwrite(&Tam[som], sizeof(struct Agenda) ,1,file);


if (esc == 1) {
printf(" \n Salvo com sucesso! ");
}
som++;
opcao = Resposta();
qtd++;
}
fclose (file);
}

void Pesquisar(void){
int ind = 0, read = 1, cont = 0;
char nome[20];

if ((file = fopen("agenda.txt", "r")) == NULL){


// Pode ocorrer erro caso não haja permissão de leitura e/ou escrita
printf (" O arquivo não pode ser aberto!\n");
printf (" Porfavor insere dados!\n");
getch();
exit(1);
}
printf ("Digite o nome: ");
gets(nome);

read = fread(&Tam[ind], sizeof(struct Agenda), 1, file);

while (read == 1){


//faz a comparação com "strcmp" em todos os indices da estrutura nome por algo igual ao digitado
//nome digita com a posição nome no indice x por exemplo (x é um numero)
if (strcmp(nome, Tam[ind].nome) == 0 ){

printf ("\nNome: %s", Tam[ind].nome);


printf("\nNumero Casa:%s ",Tam[ind].Numcasa);
printf("\n\nnRua ......: %s ",Tam[ind].rua);
printf("\n\nCidade ..: %s ",Tam[ind].cidade);

36 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf("\n\nnTelefone 1 ......: %s ",Tam[ind].telPrin);
printf("\n\nTelefone 2 ..: %s\n",Tam[ind].telSec);
//adiciona ao contador
cont++;
}
ind++;

read = fread(&Tam[ind], sizeof(struct Agenda), 1, file);


}
if(cont == 0){
printf("Nao existem contatos com este nome!\n");
}
getch();
fclose(file);
}

void Imprimir(){

int in = 0, le;

if ((file = fopen("agenda.txt", "r")) == NULL)


{
printf ("O arquivo da lista não pode ser aberto!\n");
getch();
exit(1);
}

le = fread(&Tam[in], sizeof(struct Agenda), 1, file);

while ( le == 1) {
printf("\n Nome: %s",Tam[in].nome);
printf("\n Numero da Casa: %s",Tam[in].Numcasa);
printf("\n Rua: %s",Tam[in].rua);
printf("\n Cidade: %s",Tam[in].cidade);
printf("\n Telefone Principal: %s",Tam[in].telSec);
printf("\n Telefone Secundario: %s",Tam[in].telSec);
printf("\n");
in++;
le = fread(&Tam[in], sizeof(struct Agenda), 1, file);
}
printf(" \n\n %d Dados salvos!\n", in);
getch();
fclose(file);
}

37 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
// Menu

void Menu(void){
char op;
do{
system("cls"); //Limpa a tela
printf("\n Escolha uma op%c%co \n",135, 198);
printf("\n1 - Incluir");
printf("\n2 - Imprimir ");
printf("\n3 - Pesquisar ");
printf("\n4 - Sair\n\n"); //Não seria necessario, mas por estetica coloquei
op = getch();
switch(op){
case '1':
Inserir();
break;
case '2':
Imprimir();
break;
case '3':
Pesquisar();
break;
default:
exit(1);
}
}while (op < '4');

char Resposta() {
char op;
do {
printf(" \n Inserir mais dados [S ou N] ? " );
op = getch();
printf("\n" );
} while (op != 's' && op != 'n');
return op;
}

Problema fazer um programa para mostrar a tabuada de multiplicação


#include<stdio.h>
#include<stdlib.h>
main() {
int n2,n1,cont;
char resp;

38 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
do
{
do
{
system("CLS");
printf(" ==== PROGRAMINHA PARA CALCULAR TABUADAS ====\n\n\n");
printf("Tabuada inicial: ");
scanf("%d",&n1); system("CLS");

printf("==================================================================\n");
if(n1>9000)
{
printf("\nOBS:\nPara fins de alinhamento, a tabuada inicial tera que ser do numero 0 (zero)\n");
printf("ate o numero 9000 (nove mil).\n\n");

printf("==================================================================\n");
printf("Pressione \"enter\" para continuar...");
getchar();
getchar();
system("cls");
}
}while(n1>9000);
for(cont=1;cont<=12;cont++)
{
printf("%.2d x %d = %-5d| %.2d x %.2d = %-5d| %.2d x %.2d = %-5d| %.2d x %.2d = %-5d\n",
n1,cont,n1*cont, n1+1,cont,(n1+1)*cont, n1+2,cont,(n1+2)*cont, n1+3,cont,(n1+3)*cont);
}
cont=1;
printf("===================================================================\n");
for(cont==1;cont<=10;cont++)
{
printf("%.2d x %.2d = %-5d| %.2d x %.2d = %-5d| %.2d x %.2d = %-5d| %.2d x %.2d = %-5d\n",
n1+4,cont,(n1+4)*cont, n1+5,cont,(n1+5)*cont, n1+6,cont,(n1+6)*cont, n1+7,cont,(n1+7)*cont);
}
printf("==================================================================\n");
printf("Deseja calcular outras tabuadas (s/n): "); scanf("%s",&resp);
}while(resp=='s' || resp=='S');
system("CLS");
printf("Antes de terminar, responda essa perguntinha.\n");

printf("===================================================================\n")
;
printf("Voce gostou do programa do engenheiro Sebastiao da Cruz \nque calcula tabuadas (s/n): ");
fflush(stdin); scanf("%s",&resp);

39 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
if(resp=='s' || resp=='S') printf("Obrigado pela sua sugestao deste programa!\n\n\n");
else
{
printf("Lamento bastante pela sua suquestao!\n");
}
printf("Pressione \"enter\" para finalizar...");
getchar();
getchar();
}

// Caso ler um número e faça a saída se o número é formado por quantos algarismos.
#include<stdio.h> main(){
int qntAlgarismo=0,n,resto;

printf("Informa o numero ");

scanf("%d",&n);
do{
resto=n%10;
n=(n-resto)/10;
qntAlgarismo +=1;
}while(n>0);
printf("\n\nRelatorio \n Qntidade de Algarismo e %d ",qntAlgarismo);
return true;
}

//2ª Caso Jogo de cobra


#include<windows.h>
#include<stdio.h>
#include<conio.h>

int isaura(int x,int y){


COORD talis={x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),talis);
} main() {
int x,d=2,x1[250]={1,2},y[250]={7,7},t=1,mx,my;
char tecla='a';
system("MODE con cols=27 lines=20");
x=0;
while(x<18) {
isaura(0,x);
system("color 4d");
printf("%c",219);
x++;

40 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
}
x=0;
do
{
isaura(x,0); system("color d5");
printf("%c",219);
x++;
}while(x<26);
x=0;
while(x<18) {
isaura(26,x);
printf("%c",219);
x++;
}
for(x=0;x<27;x++) {
isaura(x,18);
printf("%c",219);
}
mx=(rand()%25)+1;
my=(rand()%17)+1;
while(tecla!='s') {
while(tecla!='s'&&!(tecla=kbhit())) {
for(x=t;x>0;x--) {
x1[x]=x1[x-1];
y[x]=y[x-1];
}
if(d==0)x1[0]--;
if(d==1)y[0]--;
if(d==2)x1[0]++;
if(d==3)y[0]++;
isaura(x1[t],y[t]);
printf(" ");
if(mx==x1[0]&&my==y[0]) {
t++;
mx=(rand()%25)+1;
my=(rand()%17)+1;
}
isaura(x1[0],y[0]);
printf("%c",219);
isaura(mx,my);
printf("%c",1);
Sleep(300);
for(x=1;x<t;x++) {
if(x1[0]==x1[x]&&y[0]==y[x])
tecla='s';
}

41 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
if(y[0]==0||y[0]==18||x1[0]==0||x1[0]==26)
tecla='s';
}
if(tecla!='s')
tecla=getch();
if(tecla=='K')d=0;
if(tecla=='H')d=1;
if(tecla=='M')d=2;
if(tecla=='P')d=3;
if(y[0]==0||y[0]==18||x1[0]==0||x1[0]==26)
tecla='s';
}
getch();
}

/* ª Programa que receberá uma matriz A(5,5) e retornará:


a. A média aritmética dos elementos abaixo da diagonal principal.
b. O menor valor da matriz.
c. A soma de todos os elementos da matriz.
d. A média dos elementos da 3ª linha.
e. A quantidade de números pares.
f. A quantidade de números negativos.
g. A soma dos elementos da diagonal secundária.
*/
#include "stdio.h"
#include"stdlib.h"
main(void)
{

int matrix[5][5],x;
int col=0,lin=0,contpar=0,contneg=0,menorvalor=0,somatotal=0,somads=0; float
mediadp=0,media3l=0;
talis:
system("color f5");
for (lin=0;lin<5;lin++)
for (col=0;col<5;col++)
{
printf("Informe o valor da LINHA:%d, COLUNA: %d -> ",lin+1,col+1);
scanf("%d",&matrix[lin][col]);

}
system("cls");
for (lin=0;lin<5;lin++)
{

42 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf("\n\n");
for (col=0;col<5;col++)
printf("%5.d ",matrix[lin][col]);
}
for (lin=0;lin<5;lin++)
for (col=0;col<5;col++)
if (lin > col)
mediadp = mediadp + matrix[lin][col];
mediadp = mediadp/10;
menorvalor=matrix[0][0];
for (lin=0;lin<5;lin++)
for (col=0;col<5;col++)
if (matrix[lin][col] < menorvalor)
menorvalor = matrix[lin][col];

for (lin=0;lin<5;lin++)
for (col=0;col<5;col++)
somatotal = somatotal + matrix[lin][col];

for (col=0;col<5;col++)
media3l = media3l + matrix[2][col];
media3l = media3l/5.0;

for (lin=0;lin<5;lin++)
for (col=0;col<5;col++)
if (matrix[lin][col] % 2 == 0)
contpar++;
for (lin=0;lin<5;lin++)
for (col=0;col<5;col++)
if (matrix[lin][col] < 0)
contneg++;
for (lin=0;lin<5;lin++)
for (col=0;col<5;col++)
if (lin + col == 4)
somads = somads + matrix[lin][col];
system("color 5f");
printf("\n\n\n\na. A media aritmetica dos elementos abaixo da diagonal principal: %.1f\n",mediadp);
printf("b. O menor valor da matriz: %d\n",menorvalor);
printf("c. A soma de todos os elementos da matriz: %d\n",somatotal);
printf("d. A media dos elementos da linha 3: %.1f\n",media3l);
printf("e. A quantidade de numeros pares: %d\n",contpar);
printf("f. A quantidade de numeros negativos: %d\n",contneg);
printf("g. A soma dos elementos da diagonal secundaria: %d\n",somads);
sebastiao_da_cruz: printf("\nDigite |1| para continuar e |2| para sair: ==>");

43 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
scanf("%i",&x);
if(x==1){
system("cls");
system("color 2a");
goto talis;
} else
if(x==2){
system("cls");
system("color a2");
printf("ate breve!!!");
}else{
system("cls");
printf("\t\tSeu rebelde");
goto sebastiao_da_cruz;
}
}

Problema: jogo da velha

#include<stdio.h>
#include<stdlib.h>
main()
{
char matriz[4][4], valor, jog1[60], jog2[60], resp;
int linha=0, coluna=0, i=0, j=0, empate=0, venceu=0,cont=1, jogada=0, verifica[4][4];
do
{
jogada=1;
empate=0;
venceu=0;
fflush(stdin);
printf(" JOGO DA VELHA V. 2.0\n");
printf(" ==== == ===== == ===\n\n\n\n");
printf("INFORME O NOME DO JOGADOR 1: "); gets(jog1);
printf("INFORME O NOME DO JOGADOR 2: "); gets(jog2);
printf("===============================================================\n");
printf("JOGADOR 1: %s = \"X\"\n", jog1);
printf("JOGADOR 2: %s = \"O\"\n", jog2);
printf("===============================================================\n");
printf("PRESSIONE \"ENTER\" PARA CONTINUAR..."); getchar();
system("cls");
for(i = 0; i <= 3; i++)
{

44 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
for(j = 0; j <= 3; j++)
{
matriz[i][j] =' '; //esvazia os vetores.
verifica[i][j]=' '; //esvazia os vetores.
}
}

do
{
if(jogada <= 10) system("cls");
printf("\n");
for(i = 1; i <= 3; i++)
{
for(j = 1; j <= 3; j++)
{
//controla o preenchimento dos valores.
if(matriz[i][j] == 'X' || matriz[i][j] == 'O')
printf(" %2c ",matriz[i][j]); //mostra os valores colocados.
else
printf(" "); //deixa em branco espaços ainda não informados.
if(j <= 2)
printf("%c", -77); //desenha as colunas.
}
printf("\n");
if(i <= 2) //controla a exibição da última linha do desenho.
for(cont = 1; cont <= 15; cont++)
{
printf("%c", -60); //desenha as linhas.
if(cont == 5 || cont == 10)
printf("%c", -59); //coloca o caractere '+' na junção das linhas e colunas.
}
printf("\n");
}

if(venceu==1)
{

printf("===============================================================\n\n");
if (jogada%2 == 0)printf("RESULTADO: >>> \"X\" VENCEU <<<\n");
else printf("RESULTADO: >>> \"O\" VENCEU <<<\n");
goto FIM; //termina o jogo
}
if(empate == 1)
{

printf("===============================================================\n\n");

45 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf("RESULTADO: >>> O JOGO EMPATOU <<<\n");
goto FIM; //termina o jogo
}

if(jogada % 2 != 0) //Impar = jogador 1, Par = jogador 2.


{
printf("VEZ DO JOGADOR 1: %s = \"X\"\n", jog1);
valor= 'X';
}
else
{
printf("VEZ DO JOGADOR 2: %s = \"O\"\n", jog2);
valor= 'O';
}

printf("===============================================================\n\n");
VOLTA:;
do
{
printf("INFORME O NUMERO DA LINHA.: "); scanf("%d",&linha);
if(linha > 3) printf("O numero da linha nao pode ser maior que 3.\n");
if(linha < 1) printf("O numero da linha nao pode ser menor que 1.\n");
}while(linha > 3 || linha < 1);
do
{
printf("INFORME O NUMERO DA COLUNA: "); scanf("%d",&coluna);
if(coluna > 3) printf("O numero da coluna nao pode ser maior que 3.\n");
if(coluna < 1) printf("O numero da coluna nao pode ser menor que 1.\n");
}while(coluna > 3 || coluna < 1);

if(verifica[linha][coluna]==1) //verifica se a jogada já foi feita


{
printf(">>> Esta jogada ja foi feita!! <<<\n");
goto VOLTA;
}
else
{
matriz[linha][coluna]=valor; // coloca o valor no jogo "X" ou "O".
verifica[linha][coluna]=1; // coloca valor 1 em jogadas já feitas
}
//VERIFICA LINHAS.
if(matriz[1][1]=='X' && matriz[1][2]=='X' && matriz[1][3]=='X') venceu=1;
if(matriz[2][1]=='X' && matriz[2][2]=='X' && matriz[2][3]=='X') venceu=1;
if(matriz[3][1]=='X' && matriz[3][2]=='X' && matriz[3][3]=='X') venceu=1;
if(matriz[1][1]=='O' && matriz[1][2]=='O' && matriz[1][3]=='O') venceu=1;
if(matriz[2][1]=='O' && matriz[2][2]=='O' && matriz[2][3]=='O') venceu=1;

46 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
if(matriz[3][1]=='O' && matriz[3][2]=='O' && matriz[3][3]=='O') venceu=1;
//VERIFICA COLUNAS.
if(matriz[1][1]=='X' && matriz[2][1]=='X' && matriz[3][1]=='X') venceu=1;
if(matriz[1][2]=='X' && matriz[2][2]=='X' && matriz[3][2]=='X') venceu=1;
if(matriz[1][3]=='X' && matriz[2][3]=='X' && matriz[3][3]=='X') venceu=1;
if(matriz[1][1]=='O' && matriz[2][1]=='O' && matriz[3][1]=='O') venceu=1;
if(matriz[1][2]=='O' && matriz[2][2]=='O' && matriz[3][2]=='O') venceu=1;
if(matriz[1][3]=='O' && matriz[2][3]=='O' && matriz[3][3]=='O') venceu=1;
//VERIFICA DIAGONAIS.
if(matriz[1][1]=='X' && matriz[2][2]=='X' && matriz[3][3]=='X') venceu=1;
if(matriz[1][3]=='X' && matriz[2][2]=='X' && matriz[3][1]=='X') venceu=1;
if(matriz[1][1]=='O' && matriz[2][2]=='O' && matriz[3][3]=='O') venceu=1;
if(matriz[1][3]=='O' && matriz[2][2]=='O' && matriz[3][1]=='O') venceu=1;

jogada++; //incrementa as jogadas


if(jogada > 9) empate=1; //jogo empatou
}while(jogada >1 );
FIM:;

printf("\n===============================================================\n");
printf("DESEJA JOGAR NOVAMENTE (S/N): ");
scanf("%s",&resp);
system("cls"); //Limpa a tela para recomeçar o jogo.
}while(resp=='s' || resp=='S');
}

Problema jogo de pregunta e resposta

// tel 935457261 ou 925191415


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
char resp,inicio;
char cert='s';
char nome[40];
int medio=0,facil=0,dificil=0,cont=0,nivel;
int certo_1=0,errado_1=0,contp_1=1,totp_1=1;
int certo_2=0,errado_2=0,contp_2=1,totp_2=1;
int certo_3=0,errado_3=0,contp_3=1,totp_3=1;
system ("color b2");
printf ("*==============================================*\n");
printf ("\t\t | AUTOR: SEBASTIAO DA CRUZ MIRANDA |\n");
printf ("\t\t | LICENCIATURA EM ENGENHARIA INFORMATICA |\n");
printf ("\t\t | TEL 935457261 / 925191415 TALIS SHOW |\n");

47 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("*=========================================*\n\n");
printf ("*=========================================*\n");
printf ("|===| JOGO DE PERGUNTAS E RESPOSTAS |======|\n");
printf ("*========================================*\n");
printf ("\tInforme o nome do participante e em seguida pressione \"enter\".\n\n");
printf ("\t\t\tNOME DO PARTICIPANTE:==>");
gets(nome);
system("cls");
printf ("\t\t\tSEJA BEM VINDO \"%s\"\n",nome);
printf ("-------------------------------------------------------------------------------\n");
printf (" \"%s\" Este e um jogo divertido de perguntas e respostas.\n");
printf ("\ o jogador devera escolher dentre as 4 alternativas apenas uma\n");
printf ("\ opcao e em seguida pressionar a tecla \"enter\".\n\n");
printf ("\t\tO jogo possui 3 niveis de dificuldade:\n\n");
printf ("\t\tNivel facil - Cada resposta certa valera 2 pontos\n");
printf ("\t\tNivel medio - Cada resposta certa valera 4 pontos\n");
printf ("\t\tNivel dificil - Cada resposta certa valera 6 pontos\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\tBoa sorte e bom jogo\n\n");
printf ("\t\tPressione \"enter\" para continuar...");
system ("color f5");
getchar();system ("cls");
dificuldade:
printf ("\t\t\t*-----------------------------*\n");
printf ("\t\t\t| NIVEIS DE DIFICULDADE |\n");
printf ("\t\t\t*-----------------------------*\n");
printf ("\t\t\t| 1 - NIVEL FACIL |\n");
printf ("\t\t\t| 2 - NIVEL MEDIO |\n");
printf ("\t\t\t| 3 - NIVEL DIFICIL |\n");
printf ("\t\t\t*-----------------------------*\n");
printf ("\t\t\tDESEJA JOGAR EM QUAL NIVEL? \n \t\t\t\t==>");
scanf ("%d",&nivel);
system("cls");
switch (nivel)
{
case 1 :
{
system("cls");
time_t tempo;struct tm *data;time(&tempo);
data = localtime(&tempo);
printf ("\t\t\tAS PERGUNSTAS DE NIVEL \"FACIL\" VALEM 2 PONTOS
CADA\n\n \t\t\t");

getchar();printf ("Pressione \"enter\" para continuar...");


getchar();system ("cls");
//system ("color a1");

48 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("\t\t\t*--------------------------------*\n");
printf ("\t\t\t| Pergunta n. %.2d - Nivel Facil |\n",contp_1++);
printf ("\t\t\t*--------------------------------*\n\n");
printf ("\t\t\tEM QUE ANO OS PORTUGUESES CHEGARAM EM
ANGOLA?\n");
printf ("\t\t\tA) 1975\n");
printf ("\t\t\tB) 1961\n");
printf ("\t\t\tC) 1842\n");
printf ("\t\t\tD) 1992\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tQual a resposta certa?\n \t\t\t==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp='C'))
{
printf ("\t\t\tResposta correta \n");
certo_1++;
}
else
{
printf ("\t\t\Resposta errada\n");
printf ("\t\tResposta correta: Letra \"c\"\n");
errado_1++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("\t\t\tPressione \"enter\" para continuar...\t\t\t");
getchar();system("cls");
//system ("color c1");
printf ("\t\t\t*--------------------------------*\n");
printf ("\t\t\t| Pergunta n. %.2d - Nivel Facil |\n",contp_1++);
printf ("\t\t\t*--------------------------------*\n\n");
printf ("\t\t\t QUANTAS CORES TEM A BANDEIRA NACIONAL DE
ANGOLA?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tA) 14 CORES\n");
printf ("\t\t\tB) 5 CORES\n");
printf ("\t\t\tC) 3 CORES\n");
printf ("\t\t\tD) 7 CORES\n");
printf ("\t-------------------------------------------------------------------------------\n");
printf ("\t\t\tQual a resposta certa?\n\t\t\t==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp=='C'))
{
printf ("\t\t\tResposta correta\n");
certo_1++;
}
else

49 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
{
printf ("\t\t\tResposta errada\n");
printf ("\t\t\tResposta correta: Letra \"c\"\n");
errado_1++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("\t\t\tPressione \"enter\" para continuar...");
getchar();system("cls");
system ("color d1");
printf ("\t\t\t*--------------------------------*\n");
printf ("\t\t\t| Pergunta n. %.2d - Nivel Facil |\n",contp_1++);
printf ("\t\t\t*--------------------------------*\n\n");
printf ("\t\t\tQUAL E O PRIMEIRO PRESENTENTE DE ANGOLA?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tA) NITOS ANES\n");
printf ("\t\t\tB) AGOSTINHO NETO\n");
printf ("\t\t\tC) JOSE EDUARDO DOS SANTOS\n");
printf ("\t\t\tD) SEBASTIAO DA CRUZ MIRANDA\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tQual a resposta certa?\n \t\t\t==>");
scanf ("%s",&resp);
if ((resp=='b')||(resp=='B'))
{
printf ("\t\t\t Resposta correta\n");
certo_1++;
}
else
{
printf ("\t\t\tResposta errada\n");
printf ("\t\t\tResposta correta: Letra \"B\"\n");
errado_1++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("\t\t\tPressione \"enter\" para continuar...");
getchar();system("cls");
printf ("\t\t\t*--------------------------------*\n");
printf ("\t\t\t| Pergunta n. %.2d - Nivel Facil |\n",contp_1++);
printf ("\t\t\t*--------------------------------*\n\n");
printf ("\t\t\tQUAL E A PROVINCIA DO PRIMEIRO PRESEDENTE DE
ANGOLA?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tA) BENGO\n");
printf ("\t\t\tB) LUANDA\n");
printf ("\t\t\tC) BEMGUELA\n");
printf ("\t\t\tD) HUAMBO\n");
printf ("-------------------------------------------------------------------------------\n");

50 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("\t\t\tQual a resposta certa?\n \t\t\t==>");
scanf ("%s",&resp);
if ((resp=='a')||(resp=='A'))
{
printf ("\t\t\tResposta correta\n");
certo_1++;
}
else
{
printf ("\t\t\tResposta errada\n");
printf ("\t\t\tResposta correta: Letra \"A\"\n");
errado_1++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("\t\t\tPressione \"enter\" para continuar...");
getchar();system("cls");
system ("color e1");
printf ("\t\t\t*--------------------------------*\n");
printf ("\t\t\t| Pergunta n. %.2d - Nivel Facil |\n",contp_1++);
printf ("\t\t\t*--------------------------------*\n\n");
printf ("\t\t\tEM QUE ANO ANGOLA TORNOU-SE INDEPENDENTE?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tA) EM 1842\n");
printf ("\t\t\tB) EM 1961\n");
printf ("\t\t\tC) EM 1975\n");
printf ("\t\t\tD) EM 2002\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tQual a resposta certa?\n \t\t\t==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp=='C'))
{
printf ("\t\t\tResposta correta\n");
certo_1++;
}
else
{
printf ("\t\t\tResposta errada\n");
printf ("\t\t\tResposta correta: Letra \"C\"\n");
errado_1++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system("cls");
printf ("\t\t\t*--------------------------------*\n");
printf ("\t\t\t| Pergunta n. %.2d - Nivel Facil |\n",contp_1++);
printf ("\t\t\t*--------------------------------*\n\n");

51 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("\t\t\tEM QUE ANO FOI REALIZADO A PRIMEIRA ELEICOES EM
ANGOLA?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tA) 2012\n");
printf ("\t\t\tB) 2008\n");
printf ("\t\t\tC) 1975\n");
printf ("\t\t\tD) 1992\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tQual a resposta certa?\n \t\t\t==>");
scanf ("%s",&resp);
if ((resp=='d')||(resp=='D'))
{
printf ("\t\t\tResposta correta\n");
certo_1++;
}
else
{
printf ("\t\t\tResposta errada\n");
printf ("\t\t\tResposta correta: Letra \"D\"\n");
errado_1++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("\t\t\tPressione \"enter\" para continuar...");
getchar();system("cls");
//system("color 7F");
printf ("\t\t\t*--------------------------------*\n");
printf ("\t\t\t| Pergunta n. %.2d - Nivel Facil |\n",contp_1++);
printf ("\t\t\t*--------------------------------*\n\n");
printf ("\t\t\tQUAL E O NOME DO PRIMEIRO PARTIDO POLITICO DE
ANGOLA?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tA) MPLA\n");
printf ("\t\t\tB) UNITA\n");
printf ("\t\t\tC) FNLA\n");
printf ("\t\t\tD) CASA C\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tQual a resposta certa?\n \t\t\t==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp=='C'))
{
printf ("\t\t\tResposta correta\n");
certo_1++;
}
else
{
printf ("\t\tResposta errada\n");

52 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("\t\t\tResposta correta: Letra \"C\"\n");
errado_1++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("\t\t\Pressione \"enter\" para continuar...");
getchar();system("cls");
printf ("\t\t\t*--------------------------------*\n");
printf ("\t\t\t| Pergunta n. %.2d - Nivel Facil |\n",contp_1++);
printf ("\t\t\t*--------------------------------*\n\n");
printf ("\t\t\tQUAL O SIGNIFICADO DA SILGLA ONU?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tA) ORGANIZACAO NACIONAL DA UNITA\n");
printf ("\t\t\tB) ORDEN NACIONAL DA UNITA\n");
printf ("\t\t\tC) ORGANIZACAO DAS NACOES UNIDAS\n");
printf ("\t\t\tD) NENHUMA DAS ALTERNATIVAS\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("\t\t\tQual a resposta certa?\n \t\t\t==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp=='C'))
{
printf ("\t\t\tResposta correta\n");
certo_1++;
}
else
{
printf ("\t\t\tResposta errada\n");
printf ("\t\t\tResposta correta: Letra \"C\"\n");
errado_1++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("\t\t\tPressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("\t\t\tAs pergunstas deste nivel terminaram.\n");
printf ("\t\t\tDeseja jogar em outro nivel (s/n)? \t\t\t==>");
scanf ("%s",&resp);
if ((resp=='s')||(resp=='S'))
{
system ("cls");
totp_1=contp_1;
contp_1=1;
goto dificuldade;
}
break;
}

/*Inicio do nível médiio*/

53 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
case 2:
{
system("cls");
system("color e1");
printf (" AS PERGUNSTAS DE NIVEL \"MEDIO\" VALEM 4 PONTOS
CADA\n\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("*--------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Medio |\n",contp_2++);
printf ("*--------------------------------*\n\n");
printf ("COMO SE CHAMA A CIDADE DO HUAMBO?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) SAO PAULO\n");
printf ("B) CAPONTE\n");
printf ("C) NOVA LISBOA\n");
printf ("D) LOBITO\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp=='C'))
{
printf ("Resposta correta\n");
certo_2++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"C\"\n");
errado_2++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system("cls");
printf ("*--------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Medio |\n",contp_2++);
printf ("*--------------------------------*\n\n");
printf ("QUAL E A UNIVERCIDADE QUE FORMOU SR. MENDES DE
CARVALHO ?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) UNIVERSIDADE AGOSTINHO NETO\n");
printf ("B) UNIVERSIDADE JOSE EDUARDO DOS SANTOS\n");
printf ("C) UNIVERSIDADE DE BELAS\n");
printf ("D) UNIVERSIDADE UNIVERSISADE METODISTA \n");
printf ("-------------------------------------------------------------------------------\n");

54 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='d')||(resp=='D'))
{
printf ("Resposta correta\n");
certo_2++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"D\"\n");
errado_2++;
}
printf ("-----------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system("cls");
printf ("*--------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Medio |\n",contp_2++);
printf ("*--------------------------------*\n\n");
printf ("O QUE E A MEMORIA CACHE?\n");
printf ("-----------------------------------------------------------------------------------\n");
printf ("A) e uma memoria que usa flash de memoria para manter informacao \n");
printf ("B) e uma memoria volat que e so utilizado para armazenamento de dado\n");
printf ("C) memoria pequeno que e colocado entre a memoria principal e a cpu\n");
printf ("D) e uma memoria nao volat e so utilizado para leitura de dado\n");
printf ("------------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp=='C'))
{
printf ("Resposta correta\n");
certo_2++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"C\"\n");
errado_2++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system("cls");
printf ("*--------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Medio |\n",contp_2++);
printf ("*--------------------------------*\n\n");
printf ("QUAL E A EMPRESA FORNECEDOR DE INERGIA EM LUANDA?\n");

55 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("-------------------------------------------------------------------------------\n");
printf ("A) ITEL\n");
printf ("B) INE\n");
printf ("C) INDOVE\n");
printf ("D) END\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='d')||(resp=='D'))
{
printf ("Resposta correta\n");
certo_2++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"D\"\n");
errado_2++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system("cls");
printf ("*--------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Medio |\n",contp_2++);
printf ("*--------------------------------*\n\n");
printf ("QUAL E O NOME CIENTIFICO DA CANA-DE-ACUCAR?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) CACHACA\n");
printf ("B) RAPADURA\n");
printf ("C) INFLORESCENCIA\n");
printf ("D) SACCHARUM OFFICINARUM\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='d')||(resp=='D'))
{
printf ("Resposta correta\n");
certo_2++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"D\"\n");
errado_2++;
}
printf ("-------------------------------------------------------------------------------\n");

56 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system("cls");
printf ("*--------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Medio |\n",contp_2++);
printf ("*--------------------------------*\n\n");
printf ("COMO E CONHECIDO O INVENTOR DA LAMPADA ELETRICA?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) THOMAS JEFFERSON\n");
printf ("B) THOMAS DE AQUINO\n");
printf ("C) THOMAS EDISOM\n");
printf ("D) SEBASTIAO DA CRUZ MIRANDA\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp=='C'))
{
printf ("Resposta correta\n");
certo_2++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"C\"\n");
errado_2++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system("cls");
printf ("*--------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Medio |\n",contp_2++);
printf ("*--------------------------------*\n\n");
printf ("QUAL DOS ITENS ABAIXO NAO E UMA LINGUAGEM DE
PROGRAMACAO?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) COBOL\n");
printf ("B) BASIC\n");
printf ("C) SMALLTALK\n");
printf ("D) PREVIEW\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='d')||(resp=='D'))
{
printf ("Resposta correta\n");
certo_2++;
}

57 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"D\"\n");
errado_2++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system("cls");
printf ("*--------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Medio |\n",contp_2++);
printf ("*--------------------------------*\n\n");
printf ("QUAL OCEANO QUE BANHA ANGOLA?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) PACIFICO\n");
printf ("B) ATLANTICO\n");
printf ("C) GLACIAL ARTICO\n");
printf ("D) MERIDIONAL\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='b')||(resp=='B'))
{
printf ("Resposta correta\n");
certo_2++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"B\"\n");
errado_2++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("As pergunstas deste nivel terminaram.\n");
printf ("Deseja jogar em outro nivel (s/n)? ==>");
scanf ("%s",&resp);
if ((resp=='s')||(resp=='S'))
{
system ("cls");
totp_2=contp_2;
contp_2=1;
goto dificuldade;
}
break;

58 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
}

/* Inicio do nível difícil */

case 3 :
{
system("CLS");

printf (" AS PERGUNSTAS DE NIVEL \"DIFICIL\" VALEM 6 PONTOS


CADA\n\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("*----------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Dificil |\n",contp_3++);
printf ("*----------------------------------*\n\n");
printf ("O QUE E UM ATOMO?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) MENOR PORCAO EM QUE PODE SER DIVIDIDO UM ELEMENTO
QUIMICO\n");
printf ("B) BOLHAS QUE SAEM DA AGUA QUANDO ELA ENTRA EM
EBULICAO\n");
printf ("C) EXPLOSIVO\n");
printf ("D) MAIOR PORCAO EM QUE PODE SER DIVIDIDO UM ELEMENTO
QUIMICO\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='a')||(resp=='A'))
{
printf ("Resposta correta\n");
certo_3++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"A\"\n");
errado_3++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("*----------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Dificil |\n",contp_3++);
printf ("*----------------------------------*\n\n");
printf ("O QUE E A LOGICA DE PRORAMACAO?\n");
printf ("-------------------------------------------------------------------------------\n");

59 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("A) uma ferramenta onde encontramos botoes :\n");
printf ("B) E o local onde o usuario deve digitar o endereco ao qual deseja ir\n");
printf ("C) E a tecnica de encadear pensamentos para atingir determinado
objectivo.\n");
printf ("D) Permite o armazenamento das informacoes contidas no computador.\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp=='C'))
{
printf ("Resposta correta\n");
certo_3++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"C\"\n");
errado_3++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("*----------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Dificil |\n",contp_3++);
printf ("*----------------------------------*\n\n");
printf (" O QUE E UM DOMINIO?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) palavra que aparece no final do site para identificar a natureza dos
sites\n");
printf ("B) organizacao qualquer que fornece acesso a Internet .\n");
printf ("C) o endereco de um documento ou pasta disponível na Internet.\n");
printf ("D) e um computador que fornece servicos a uma rede de computadores.\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='a')||(resp=='A'))
{
printf ("Resposta correta\n");
certo_3++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"A\"\n");
errado_3++;
}

60 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("*----------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Dificil |\n",contp_3++);
printf ("*----------------------------------*\n\n");
printf ("O QUE E UMA PAGINA WEB?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) e uma colecao de paginas web\n");
printf ("B) e um programas que vasculham a rede a procura do endereco que voce
quer ir. \n");
printf ("C) e um arquivo geralmente em formato HTML e com ligacoes de
hipertexto\n");
printf ("D) e o local onde o usuario deve digitar o endereco ao qual deseja ir \n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='c')||(resp=='C'))
{
printf ("Resposta correta\n");
certo_3++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"C\"\n");
errado_3++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("*----------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Dificil |\n",contp_3++);
printf ("*----------------------------------*\n\n");
printf ("EM SISTEMAS DIGITAL QUANTO DA 1+1?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) 10\n");
printf ("B) 2\n");
printf ("C) 11\n");
printf ("D) 0\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='a')||(resp=='A'))
{
printf ("Resposta correta\n");

61 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
certo_3++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"A\"\n");
errado_3++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("*----------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Dificil |\n",contp_3++);
printf ("*----------------------------------*\n\n");
printf ("COMO E CHAMADA UMA PESSOA QUE ESCREVE COM AS DUAS
MAOS?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) DESTRO\n");
printf ("B) AMBIDESTRO\n");
printf ("C) CANHOTO\n");
printf ("D) ADESTRADO\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='b')||(resp=='B'))
{
printf ("Resposta correta\n");
certo_3++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"B\"\n");
errado_3++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("*----------------------------------*\n");
printf ("| Pergunta n. %.2d - Nivel Dificil |\n",contp_3++);
printf ("*----------------------------------*\n\n");
printf ("QUAL DESTAS LINGUANGEM DE PROGRAMACAO E DE BAIXO
NIVEL?\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("A) C++\n");
printf ("B) ASSEMBLER\n");

62 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("C) C\n");
printf ("D) C#\n");
printf ("-------------------------------------------------------------------------------\n");
printf ("Qual a resposta certa?\n==>");
scanf ("%s",&resp);
if ((resp=='b')||(resp=='B'))
{
printf ("Resposta correta\n");
certo_3++;
}
else
{
printf ("Resposta errada\n");
printf ("Resposta correta: Letra \"B\"\n");
errado_3++;
}
printf ("-------------------------------------------------------------------------------\n");
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
printf ("As pergunstas deste nivel terminaram.\n");
printf ("Deseja jogar em outro nivel (s/n)?==> ");
scanf ("%s",&resp);
if ((resp=='s')||(resp=='S'))
{
system ("cls");
totp_3=contp_3;
contp_3=1;
goto dificuldade;
}
break;
}
default : printf ("Nivel invalido\n");
{
getchar();printf ("Pressione \"enter\" para continuar...");
getchar();system ("cls");
goto dificuldade;
}

}/*fechamento do 1º swhith*/
system("cls");
printf ("============ RESULTADOS DO JOGO =============\n");
printf ("\t\t\tParticipante: %s\n",nome);
printf ("\t\t\tPerguntas respondidas: %d\n",totp_1-1+contp_1-1+totp_2-1+contp_2-1+totp_3-
1+contp_3-1);
printf ("\t\t\tTotal de acertos.....: %d\n",certo_1+certo_2+certo_3);
printf ("\t\t\tTotal de erros.......: %d\n",errado_1+errado_2+errado_3);

63 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.
Prof. Sebastião da Cruz Miranda Conecta-me 935457261
printf ("\t\t\tPontuacao total......: %d\n\n",(certo_1*2)+(certo_2*4)+(certo_3*6));
printf ("---------------------------------- NIVEL FACIL --------------------------------\n");
printf ("\t\t\tPerguntas respondidas: %d\n",contp_1-1+totp_1-1);
printf ("\t\t\tAcertos..: %d\n",certo_1);
printf ("\t\t\tErros....: %d\n",errado_1);
printf ("\t\t\tPontuacao: %d\n\n",certo_1*2);
printf ("--------------------------------- NIVEL MEDIO ---------------------------------\n");
printf ("\t\t\tPerguntas respondidas: %d\n",contp_2-1+totp_2-1);
printf ("\t\t\tAcertos..: %d\n",certo_2);
printf ("\t\t\tErros....: %d\n",errado_2);
printf ("\t\t\tPontuacao: %d\n\n",certo_2*4);
printf ("-------------------------------- NIVEL DIFICIL --------------------------------\n");
printf ("\t\t\tPerguntas respondidas: %d\n",contp_3-1+totp_3-1);
printf ("\t\t\tAcertos..: %d\n",certo_3);
printf ("\t\t\tErros....: %d\n",errado_3);
printf ("\t\t\tPontuacao: %d\n",certo_3*6);
printf ("=========== AUTOR TALIS ===============\n");
getchar();
getchar();
}

64 O que mais me preocupa não é a perseguição dos maus, mais sim o silêncio dos bons.

Você também pode gostar