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).