segunda-feira, 14 de maio de 2012

Vetores - Exercício 1 (usando char)

Apostila de Vetores Exercício 1

Para resolver este exercício precisamos comparar cadeias de caracteres.


A função strcmp (string+compare) compara 2 cadeias de caracteres e retorna um número inteiro, que poderá ser:
  • zero se as duas cadeias forem iguais;
  • um número menor que zero se a cadeia1 for alfabeticamente menor que a cadeia2;
  • um número maior que zero se a cadeia1 for alfabeticamente maior que a cadeia2;
Essa função considera letras maiúsculas símbolos diferentes de letras minúsculas.

Exemplo de código em C++:


char cadeia1[80] = "Barretos";
char cadeia2[80] = "Barretos";
if ( !strcmp (cadeia1, cadeia2) )
      {
      cout << "As duas cadeias de caracteres sao iguais";
      }
else
      {
      cout << "As duas cadeias de caracteres sao diferentes";
      }

Importante: Para que a comparação considere letras maiúsculas e minúsculas iguais deve-se usar o comando stricmp ao invés de strcmp. A sintaxe é a mesma.


Exercício 1



Elabore um programa que leia uma sequência de 15 nomes de uma classe e identifique a quantidade de alunos com o nome ‘Jose’, utilizando para isso duas estruturas de repetição PARA.


Algoritmo


Programa iguais

var
nomes:vetor [1..15] de string[20]                    {variável que armazena 15 nomes}
quantjose:inteiro                                           {conta os alunos com nome Jose}
i:inteiro                                                        {índice}

inicio
         para i ← 1 até15 faça                           {leitura dos nomes}
         inicio_para
                  escreva ('Digite o nome',i,' : ')
                  leia (nomes[i])
         fim_para

         para i ← 1 até15 faça                           {verificação dos nomes iguais a Jose} 
         inicio_para
                  se (nomes[i] = 'Jose') or (nomes[i] = 'jose') or (nomes[i] = 'JOSE') então
                  inicio_se
                           quantjose ←
 quantjose + 1 
                  fim_se
         fim_para
         escreva ('Existem ',quantjose,' Joses na classe')   {impressão do resultado} 
fim

Código compilado no Dev-C++ 4.9.9.2


#include <iostream>
#include <stdio.h>


using namespace std;

int main()
{
      char nome[15][15];
      int i, quantjose;
      quantjose = 0;
      for (i = 0; i < 15; i++)
            {
            cout << "Digite o " << i+1 << "o. nome : ";
            cin >> nome[i];
            }

      for (i = 0; i < 15; i++)
            {
            if ( !stricmp(nome[i], "jose") )
                  {
                  quantjose = quantjose + 1;
                  }
            }
      cout << "\n" << "Existem " << quantjose << " Joses na classe." << "\n\n";
      system("PAUSE");
}


Repare que ainda não é possível usar um nome composto com espaços em branco na variável nomes, veremos como fazer isso mais adiante.

Nenhum comentário:

Postar um comentário