• Nenhum resultado encontrado

Atalhos de Teclado para Operações com Mouse

Programadores gastam um monte de tempo com o teclado e o mouse. Programas e documentação ocupam muitas páginas e exigem muita digitação. A constante mudança entre o editor, o compila- dor e o depurador usa poucos cliques de mouse. Os projetistas de programas como um ambiente integrado de desenvolvimento C++ acrescentaram alguns recursos para facilitar seu trabalho, mas é sua tarefa descobri-los.

Quase todos os programa possuem interfaces de usuário com menus e caixas de diálogo. Clique em um menu e clique em um submenu para selecionar uma tarefa. Clique em cada campo de uma cai- xa de diálogo, preencha a resposta solicitada e clique OK. Estas são excelentes interfaces de usuário para principiantes, porque elas são fáceis de dominar, mas são terríveis interfaces de usuário para usuá- rios regulares. A constante alternância entre o teclado e o mouse tornam você mais lento. Você neces- sita mover a mão para fora do teclado, localizar o mouse, mover o mouse e mover a mão de volta para Tabela 1

Funções-membro da classe Time

Nome Finalidade

Time() Constrói o horário atual

Time(h, m, s) Constrói um horário com hhoras, mminutos e ssegundos t.get_seconds() Retorna o valor de segundos de t t.get_minutes() Retorna o valor de minutos de t

t.get_hours() Retorna o valor de horas de t t.add_seconds(n) Altera t adicionando n segundos t.seconds_from(t2) Calcula o número de segundos entre t e t2 Figura 4

Substituindo um objeto por outro. homework_due = homework_due = Time(23, 59, 59); homework_due = Time Time 19:00:00 23:59:59 Time 23:59:59

o teclado. Por esta razão, a maioria das interfaces de usuário possuem atalhos de teclado: combinações de teclas que permitem que você faça as mesmas tarefas sem ter que mudar para o mouse.

Muitas aplicações comuns usam as seguinte convenções:

• Pressionar a tecla Alt mais uma tecla destacada no menu, (como em “File”) baixa aquele menu. Dentro de um menu, apenas forneça o caractere sublinhado no sub- menu para ativá-lo. Por exemplo, Alt+F Oseleciona “File” “Open”. Assim que seus dedos conheçam esta combinação, você pode abrir arquivos mais rapidamen- te que o mais rápido artista de mouse.

• Dentro de caixas de diálogo, a tecla Tab é importante; ela faz o cursor passar de uma opção para outra. As teclas de setas movem o cursor dentro de uma opção. A tecla Enter aceita todas as opções selecionadas na caixa de diálogo e a tecla Esc cancela quaisquer alterações.

• Em um programa com múltiplas janelas, Ctrl+Tab alterna entre as janelas gerencia- das pelo programa, como por exemplo entre a janela de código fonte e a de erros. • Alt+Tab alterna entre aplicações, permitindo a você rapidamente alternar entre o

compilador e o programa que inspeciona arquivos.

• Pressione e segure a tecla Shift e pressione as teclas de setas para salientar texto. Então use Ctrl+Xpara cortar o texto, Ctrl+Cpara copiar e Ctrl+Vpara colar. Estas teclas são fáceis de lembrar. O Vparece uma marca de inserção que um editor usa para inserir texto. O Xdeveria lembrar você de cruzar o texto a ser cortado. O Cé apenas a primeira letra de “Copiar” (OK, também é a primeira letra de “Cortar”e "colar" – nenhum mnemônico é perfeito). Você encontra estes lembretes no menu Edit.

Naturalmente, o mouse possui sua utilidade em processamento de texto: para localizar ou sele- cionar texto na mesma tela, mas distante do cursor.

Use um pouco de tempo para aprender sobre atalhos de teclado que os projetistas de seu pro- grama providenciaram para você; o investimento de tempo será recompensado muitas vezes duran- te a sua carreira de programação. Quando você disparar sobre seu trabalho no laboratório de com- putação usando atalhos de teclado, você pode se ver rodeado de espectadores surpresos que sussur- ram “Eu não sabia que você pode fazer isto”.

3.3

Objetos da vida real

Uma razão para a popularidade da programação orientada a objetos é que é fácil de modelar enti- dades do mundo real em programas de computadores, tornando os programas fáceis de entender e modificar. Considere o seguinte programa:

Arquivo Employee.cpp 1 #include <iostream> 2 3 using namespace std; 4 5 #include "ccc_empl.h" 6 7 int main() 8 {

9 Employee harry("Hacker, Harry", 45000.00);

10

12 harry.set_salary(new_salary);

13

14 cout << "Nome: " << harry.get_name() << "\n";

15 cout << "Salário: " << harry.get_salary() << "\n";

16

17 return 0;

18 }

Esse programa cria uma variável harrye a inicializa com um objeto do tipo Employee. Existem dois parâmetros de construção: o nome do empregado e o salário inicial. Então damos a Harry um aumento de $3.000 (ver Figura 5). Primeiro descobrimos seu salário atual com a função- membro get_salary. Determinamos o novo salário adicionando $3.000. Usamos a função- membro set_salarypara estabelecer o novo salário.

Finalmente, imprimimos o nome e o valor do salário do objeto empregado. Usamos as funções- membro get_namee get_salarypara obter o nome e o salário. Como você pode ver, este programa é fácil de ler porque ele realiza suas computações com entidades com significado, mais propriamente, objetos que representam empregados.

Note que você pode alterar o salário de um empregado com a função membro set_salary. Entretanto, você não pode alterar o nome de um objeto Employee.

Esta classe Employee, cujas funções são listadas na Tabela 2, não é muito realista. Em pro- gramas de processamento de dados reais, empregados também possuem números de identificação, endereços, cargos e assim por diante. Para manter simples os programas de exemplo deste livro, es-

Figura 5 Um objeto Employee Employee Hacker, Harry $45,000 harry = Employee Hacker, Harry $48,000 harry = 45000 48000 new_salary = harry.get_salary() + 3000; harry.set_salary(new salary); new_salary = Tabela 2

Funções-membro da classe Employee

Nome Finalidade

Employee(n, s) Constrói um Employee com nome n e salário s

e.get_name() Retorna o nome de e

e.get_salary() Retorna o salário de e e.set_salary(s) Configura o salário de ecomo s

ta classe foi reduzida às propriedades de empregados mais básicas. Você deve incluir o arquivo de cabeçalho ccc_empl.h em todos os programas que usam a classe Employee.

Dica de Produtividade

3.2

Usando a Linha de Comando Efetivamente

Se o seu ambiente de programação permite que você faça todas as tarefas rotineiras com menus e cai- xas de diálogo, pule estes comentários. Entretanto, se você necessita ativar o editor, o compilador, o li- gador e o programa a testar manualmente, então é bom aprender sobre edição com linha de comando. A maioria dos sistemas operacionais (UNIX, Macintosh OS X, Windows) possuem uma inter- face de linha de comando para interagir com o computador (em Windows, você pode usar a inter- face DOS de linha de comando, com um duplo clique no ícone “Command Prompt”). Você ativa comandos em um prompt. O comando é executado até terminar e você recebe outro prompt. A maioria dos programadores profissionais usa a interface de linha de comando para tarefas repetiti- vas porque é muito mais rápido digitar comandos do que navegar por janelas e botões.

Ao desenvolver um programa, você executa os mesmos comandos mais de uma vez. Não seria bom se você não tivesse que digitar repetidamente comandos como

g++ -o myprog myprog.cpp

mais de uma vez? Ou se você pudesse consertar um erro em vez de ter que redigitar inteiramente o comando? Muitas interfaces de linha de comando possuem uma opção para fazer justamente isto, mas nem sempre são óbvias. Com algumas versões de Windows, você necessita instalar um pro- grama chamado DOSKEY. Se você usa UNIX, tente que fazer com que uma shellbashou tcsh

seja instalada para você — solicite ao assistente de laboratório ou ao administrador do sistema pa- ra auxiliá-lo na configuração. Com a configuração adequada, a seta para cima ↑ é redefinida para circular pelos comandos antigos. Você pode editar linhas com as teclas de setas direita e esquerda. Você também pode fazer que um comando se complete. Por exemplo, para recuperar o mesmo co- mando gcc, digite !gcc (UNIX) ou gcc e pressione F8 (Windows).