var
Vetor : array[1..10] of integer;
Valor, I : integer;
Ok : Boolean;
BEGIN
Clrscr;
for I := 1 to 10 do begin
Writeln('Digite o valor ', I,' do vetor');
Readln(Vetor[i]);
end;
repeat
Ok := False;
Clrscr;
Writeln('Digite o Valor a Pesquisar');
Readln(Valor);
for I := 1 to 10 do begin
if Valor = Vetor[i] then begin
Ok := True;
Writeln('O valor digitado se encontra na posicao ', I);
Readln;
end;
end;
if (Ok = False) and (Valor >= 0) then begin
Writeln('Elemento nao encontrado');
Readln;
end;
until Valor = -1;
Readln;
END.
----------------------------------------------
----------------------------------------------
var
Matriz : array[1..10,1..10] of string;
Fila, Coluna : integer;
I, K : integer;
Cliente : string[40];
Resp : Char;
BEGIN
for I := 1 to 10 do begin
for k := 1 to 10 do begin
Matriz[I,K] := 'Vazia';
end;
end;
repeat
Clrscr;
Writeln('Digite o Nome do Cliente que fez a reserva');
Readln(Cliente);
repeat
Writeln('Digite o Numero da Fila da Reserva do Cliente');
Readln(Fila);
Writeln('Digite o Numero da Coluna da Reserva do Cliente');
Readln(Coluna);
until (Fila <= 10) or (Coluna <= 10);
Matriz[Fila,Coluna] := Cliente;
Writeln('Outro Cliente? ');
Readln(Resp);
until UpCase(Resp) = 'N';
for I := 1 to 10 do begin
for k := 1 to 10 do begin
if Matriz[I,K] <> 'Vazia' then begin
Writeln('Cliente: ', Matriz[I,K]);
Writeln('Fila: ', I);
Writeln('Coluna:', K);
Writeln;
end;
end;
end;
Readln;
END.
__________________
Processador......: Pentium II - 400 MHz :wub:
Placa Mãe.........: PCChips M748LMRT
HD...................: 20GB
Memoria...........: 192 MB SDRam
Placa de Video..: OnBoard
----------------------------------------------
----------------------------------------------
Este problema pode ser solucionado da maneira abaixo:
Program Pzim ;
Var
i, contador : integer;
Numeros, Posicoes : array[1..30] of integer;
{Vetor Posições deve ser da mesma dimensão do Numeros prevendo a possibilidade de todas as 30 posições serem iguais a 24}
Begin
Contador:=0;
For i:=1 to 30 do {i=índice e percorre as 30 posições}
Begin
ReadLn(Numeros[i]);{Lê os valores do Vetor Numeros}
If Numeros[i]=24 then{Se o número lido for = a 24…}
Begin
Contador:=Contador+1;{Incrementa, soma um ao contador}
Posicoes[Contador]:=i;{Inclui no vetor posições no índice=contador o valor de “i” que indica a posição onde foi achado um número = 24}
End;
End;
WriteLn(’A qtd de vezes: ‘,Contador);{A qtd de vezes esta armazenada no contador}
For i:=1 to Contador do
WriteLn(’Posição: ‘,Posicoes[i]);{As posições estão armazenadas no vetor Posições}
End.
------------------------------------------------------
------------------------------------------------------
program Inverte_os_Valores;
Var V, I, C, L, Maior, Numeros, WRT, aux, Pmenor, Pmaior: integer;
espaco: string;
vetor:array[1..15] of integer;
matriz: array[1..3,1..5] of integer;
Begin
clrscr;
writeln(’ Troca os valores do maior e do menor valor do vetor…’);
writeln;
writeln(’ Preencha a matriz com 15 números,’);
writeln(’ Em seguida carrega os valores da matriz dentro do vetor. ‘);writeln;
i:= 0;
WRT:= 1;
for L := 1 to 3 do
for C := 1 to 5 do
begin
write(’ Digite o Número ‘,WRT,’: ‘);
read(matriz[L,C]);
WRT:= WRT + 1;
i:= i + 1;
end;
// irá apenas imprimir a matriz
for L:= 1 to 3 do
begin
writeln;
for C:= 1 to 5 do
Begin
write(espaco:3,matriz[L,C]);
end;
end;
writeln;writeln;Writeln;
// irá jogar a matriz para o vetor
V:= 0;
writeln(’ Posição atual do vetor…’);
for L := 1 to 3 do
for C := 1 to 5 do
Begin
inc(V);
vetor[V]:= (Matriz[L,C]);
Write(Espaco:1,Vetor[V]);
end;
writeln;
//pegará as posições do maior e menor vetor
PMaior:= 1;
For i:= 2 to 15 do
begin
If (vetor[i] > vetor[pmaior]) then
Pmaior:=i;
end;
PMenor:= 1;
For i:= 2 to 15 do
begin
If (vetor[i] < vetor[pmenor]) then
Pmenor:=i;
end;
// imprimirá o vetor na posição atual
writeln;
writeln(’ O vetor na posição: ‘,Pmaior,’ vale: ‘, vetor[PMaior]);
writeln(’ O vetor na posição: ‘,PMenor,’ vale: ‘, Vetor[PMenor]);
writeln;writeln;
//inverterá as posiões o maior e menor valor do vetor
aux:= vetor[Pmenor];
vetor[Pmenor]:= vetor[Pmaior];
vetor[Pmaior]:= aux;
writeln(’ Vetor com o maior e menor valor invertido…’);
for i:= 1 to 15 do
write(espaco:1,vetor[i]);
writeln;writeln;
//imprimirá os valores invertidos
writeln(’ O maior vetor na posição: ‘,Pmaior,’ valerá: ‘, vetor[PMaior]);
writeln(’ O menor vetor na posição: ‘,PMenor,’ valerá: ‘, Vetor[PMenor]);
readkey;
end.
------------------------------------------------------
------------------------------------------------------
Solução em Pascal do Problema 3
program Produto;
var
m, n, nb, p,
i, j, k: integer;
Prod: real;
A, B, C: array [1..50,1..50] of real;
begin
write ('Entre com o tamanho(mXn) da matriz A: ');
readln(m,n);
write ('Digite a matriz A: ');
for i:=1 to m do for j:=1 to n do read(A[i,j]);
write ('Entre com o tamanho(nXp) da matriz B: ');
readln(nb,p);
if nb<>n then write('Nao existe o produto da matriz A por B!!')
else
begin
write ('Digite a matriz B: ');
for i:=1 to n do for j:=1 to p do read(B[i,j]);
i := 1;
while i<=m do
begin
j := 1;
while j<=p do
begin
Prod := 0;
for k:=1 to n do Prod := Prod + A[i,k]*B[k,j];
C[i,j] := Prod;
j := j+1;
Prod := 0
end;
i := i+1
end;
writeln ('Matriz A X B =');
for i:=1 to m do
begin
for j:=1 to p do write(C[i,j],' ');
writeln
end
end
end.
-----------------------------------------------
---------------pelo KARA PSI-------------------
-----------------------------------------------
Um sistema operativo ou sistema operacional � um programa ou um conjunto de programas cuja fun�o � servir de interface entre um computador e o usu�rio.
Segundo alguns autores (Silberschatz et al, 2005; Stallings, 2004; Tanenbaum, 1999), existem dois modos distintos de conceituar um sistema operacional:
� pela perspectiva do usu�rio ou programador (vis�o top-down): � uma abstra�o do hardware, fazendo o papel de intermedi�rio entre o aplicativo (programa) e os componentes f�sicos do computador (hardware); ou
� numa vis�o bottom-up, de baixo para cima: � um gerenciador de recursos, i.e., controla quais aplica�es (processos) podem ser executadas, quando, que recursos (mem�ria, disco, perif�ricos) podem ser utilizados.
A sigla usual para designar esta classe de programas � SO (em portugu�s) ou OS (do ingl�s Operating System).
Hist�ria
Na primeira gera�o de computadores (aproximadamente 1945-1955), que eram basicamente constru�dos com v�lvulas e pain�is, os sistemas operacionais n�o existiam. Os programadores, que tamb�m eram os operadores, controlavam o computador por meio de chaves, fios e luzes de aviso.
Na gera�o seguinte (aproximadamente 1955-1965), foram criados os sistemas em lote (batch systems), que permitiram melhor uso dos recursos computacionais. A base do sistema operacional era um programa monitor, usado para enfileirar tarefas (jobs). O usu�rio foi afastado do computador; cada programa era escrito em cart�es perfurados, que por sua vez eram carregados, juntamente com o respectivo compilador (normalmente Fortran ou Cobol), por um operador, que por sua vez usava uma linguagem de controle chamada JCL (job control language).
No in�cio da computa�o os primeiros sistemas operacionais eram �nicos, pois cada mainframe vendido necessitava de um sistema operacional espec�fico. Esse problema era resultado de arquiteturas diferentes e da linguagem de m�quina utilizada. Ap�s essa fase, iniciou-se a pesquisa de sistemas operacionais que automatizassem a troca de tarefas (jobs), pois os sistemas eram monousu�rios e tinham cart�es perfurados como entrada (eliminando, assim, o trabalho de pessoas que eram contratadas apenas para trocar os cart�es perfurados).
Um dos primeiros sistemas operacionais de prop�sito geral foi o CTSS, desenvolvido no MIT. Ap�s o CTSS, o MIT, os laborat�rios Bell da AT&T e a General Eletric desenvolveram o Multics, cujo objetivo era suportar centenas de usu�rios. Apesar do fracasso comercial, o Multics serviu como base para o estudo e desenvolvimento de sistemas operacionais. Um dos desenvolvedores do Multics, que trabalhava para a Bell, Ken Thompson, come�ou a reescrever o Multics num conceito menos ambicioso, criando o Unics (em 1969), que mais tarde passou a chamar-se Unix. Os sistemas operacionais eram geralmente programandos em assembly, at� mesmo o Unix em seu in�cio. Ent�o, Dennis Ritchie (tamb�m da Bell) criou a linguagem C a partir da linguagem B, que havia sido criada por Thompson. Finalmente, Thompson e Ritchie reescreveram o Unix em C. O Unix criou um ecossistema de vers�es, onde destacam-se: System V e derivados (HP-UX, AIX); fam�lia BSD (FreeBSD, NetBSD, OpenBSD, etc.), Linux e at� o Mac OS X (que deriva do Mach e FreeBSD).
Na d�cada de 1970, quando come�aram a aparecer os computadores pessoais, houve a necessidade de um sistema operacional de utiliza�o mais f�cil. Em 1980, William (Bill) Gates e seu colega de faculdade, Paul Allen, fundadores da Microsoft, compram o sistema QDOS ("Quick and Dirty Operating System") de Tim Paterson por $50.000, batizam-no de DOS (Disk Operating System) e vendem licen�as � IBM. O DOS vendeu muitas c�pias, como o sistema operacional padr�o para os computadores pessoais desenvolvidos pela IBM. IBM e Microsoft fariam, ainda, uma parceria para o desenvolvimento de um sistema operacional multitarefa chamado OS/2. Ap�s o fim da breve parceria a IBM seguiu sozinha no desenvolvimento do OS/2.
No come�o da d�cada de 1990, um estudante de computa�o finland�s postou um coment�rio numa lista de discuss�o da Usenet dizendo que estava desenvolvendo um kernel de sistema operacional e perguntou se algu�m gostaria de auxili�-lo na tarefa. Este estudante chamava-se Linus Torvalds e o primeiro passo em dire�o ao t�o conhecido Linux foi dado naquele momento.
Vis�o geral
Um sistema operativo pode ser visto como um programa de grande complexidade que � respons�vel por todo o funcionamento de uma m�quina desde o software a todo hardware instalado na m�quina. Todos os processos de um computador est�o por de tr�s de uma programa�o complexa que comanda todas a fun�es que um utilizador imp�e � m�quina. Existem v�rios sistemas operativos; entre eles, os mais utilizados no dia a dia, normalmente utilizados em computadores dom�sticos, s�o o Windows, Linux, OS/2 e Mac OS X.
Um computador com o sistema operativo instalado poder� n�o dar acesso a todo o seu conte�do dependendo do utilizador. Com um sistema operativo, podemos estabelecer permiss�es a v�rios utilizadores que trabalham com este. Existem dois tipos de contas que podem ser criadas num sistema operativo, as contas de Administrador e as contas limitadas. A conta Administrador � uma conta que oferece todo o acesso � m�quina, desde a gest�o de pastas, ficheiros e software de trabalho ou entretenimento ao controlo de todo o seu Hardware instalado. A conta Limitada � uma conta que n�o tem permiss�es para aceder a algumas pastas ou instalar software que seja instalado na raiz do sistema ou ent�o que tenha liga�o com algum Hardware que altere o seu funcionamento normal ou personalizado pelo Administrador. Para que este tipo de conta possa ter acesso a outros conte�dos do disco ou de software, o administrador poder� personalizar a conta oferecendo permiss�es a algumas fun�es do sistema como tamb�m poder� retirar acessos a certas �reas do sistema.
O sistema operativo funciona com a inicia�o de processos que este ir� precisar para funcionar correctamente. Esses processos poder�o ser ficheiros que necessitam de ser frequentemente actualizados, ou ficheiros que processam dados �teis para o sistema. Poderemos ter acesso a v�rios processos do sistema operativo a partir do gestor de tarefas, onde se encontram todos os processos que est�o em funcionamento desde o arranque do sistema operativo at� a sua utiliza�o actual. Pode-se tamb�m visualizar a utiliza�o da mem�ria por cada processo, no caso de o sistema operativo come�ar a mostrar erros ou falhas de acesso a programas tornando-se lento, pode-se verificar no gestor de tarefas qual dos processos estar� bloqueado ou com elevado n�mero de processamento que est� a afectar o funcionamento normal da mem�ria.
Funcionamento
Um sistema operacional possui as seguintes fun�es:
1. gerenciamento de processos;
2. gerenciamento de mem�ria;
3. sistema de arquivos;
4. entrada e sa�da de dados.
Gerenciamento de processos
O sistema operacional multitarefa � preparado para dar ao usu�rio a ilus�o que o n�mero de processos em execu�o simult�nea no computador � maior que o n�mero de processadores instalados. Cada processo recebe uma fatia do tempo e a altern�ncia entre v�rios processos � t�o r�pida que o usu�rio pensa que sua execu�o � simult�nea.
S�o utilizados algoritmos para determinar qual processo ser� executado em determinado momento e por quanto tempo.
Os processos podem comunicar-se, isto � conhecido como IPC (Inter-Process Communication). Os mecanismos geralmente utilizados s�o:
� sinais,
� pipes,
� named pipes,
� mem�ria compartilhada,
� soquetes (sockets),
� sem�foros,
� trocas de mensagens.
O sistema operacional, normalmente, deve possibilitar o multiprocessamento (SMP ou NUMA). Neste caso, processos diferentes e threads podem ser executados em diferentes processadores. Para essa tarefa, ele deve ser reentrante e interromp�vel, o que significa que pode ser interrompido no meio da execu�o de uma tarefa.
Gerenciamento de mem�ria
O sistema operacional tem acesso completo � mem�ria do sistema e deve permitir que os processos dos usu�rios tenham acesso seguro � mem�ria quando o requisitam.
V�rios sistemas operacionais usam mem�ria virtual, que possui 3 fun�es b�sicas:
1. assegurar que cada processo tenha seu pr�prio espa�o de endere�amento, come�ando em zero, para evitar ou resolver o problema de reloca�o (Tanenbaum, 1999);
2. prover prote�o da mem�ria para impedir que um processo utilize um endere�o de mem�ria que n�o lhe perten�a;
3. possibilitar que uma aplica�o utilize mais mem�ria do que a fisicamente existente.
Sistema de arquivos
A mem�ria principal do computador � vol�til, e seu tamanho � limitado pelo custo do hardware. Assim, os usu�rios necessitam de algum m�todo para armazenar e recuperar informa�es de modo permanente.
Um arquivo � um conjunto de bytes, normalmente armazenado em um dispositivo perif�rico n�o vol�til (p.ex., disco), que pode ser lido e gravado por um ou mais processos.
O sistema de arquivos � a estrutura que permite o gerenciamento de arquivos -- cria�o, destrui�o, leitura, grava�o, controle de acesso, etc.
Classifica�es
Em rela�o ao seu projeto (arquitetura), segundo Tanenbaum (1999):
� Kernel monol�tico ou monobloco: o kernel consiste em um �nico processo executando numa mem�ria protegida (espa�o do kernel) executando as principais fun�es. Ex.: OS/2, Windows, Linux, FreeBSD.
� Microkernel ou modelo cliente-servidor: o kernel consiste de fun�es m�nimas (comunica�o e gerenciamento de processos), e outras fun�es, como sistemas de arquivos e gerenciamento de mem�ria, s�o executadas no espa�o do usu�rio como servi�os; as aplica�es (programas) s�o os clientes. Ex.: GNU Hurd, Mach.
� Sistema em camadas: fun�es do kernel ir�o executar em camadas distintas, de acordo com seu n�vel de privil�gio. Ex.: Multics.
� Monitor de m�quinas virtuais: fornece uma abstra�o do hardware para v�rios sistemas operacionais. Ex.: VM/370, VMware, Xen.
Quanto � capacidade de processamento, pode-se usar a seguinte classifica�o:
� Monotarefa: pode-se executar apenas um processo de cada vez Ex.: DOS.
� Multitarefa: al�m do pr�prio SO, v�rios processos de utilizador (tarefas) est�o carregados em mem�ria, sendo que um pode estar ocupando o processador e outros ficam enfileirados, aguardando a sua vez. O compartilhamento de tempo no processador � distribu�do de modo que o usu�rio tenha a impress�o que v�rios processos est�o sendo executados simultaneamente. Ex: OS/2, Windows, Linux, FreeBSD e o Mac OS X.
� Multiprocessamento: o SO distribui as tarefas entre dois ou mais processadores.
� Multiprograma�o: o SO divide o tempo de processamento entre v�rios processos mantendo o processador sempre ocupado.
Refer�ncias
� BACH, Maurice J. The design of the Unix operating system. Upper Saddle River: Prentice Hall. 1990.
� BOVET Daniel P.; CESATI, Marco. Understanding de Linux kernel. 3.ed. Sebastopol: O'Reilly. 2005.
� MCKUSICK, Marshall K.; NEVILLE-NEIL, George V. The design and implementation of the FreeBSD operating system. Upper Saddle River: Addison-Wesley. 2004.
� RUSSINOVITCH, Mark E.; SOLOMON, David A. Microsoft Windows internals. 4.ed. Redmond: Microsoft Press. 2005.
� SILBERSCHATZ, Avi; GALVIN, Peter B.; GAGNE, Greg. Operating system concepts. 7.ed. Hoboken: Wiley. 2005.
� STALLINGS, William. Operating systems: internals and design principles. 5.ed. Upper Saddle River: Pearson Prentice Hall. 2004.
� TANENBAUM, Andrew. Sistemas operacionais modernos. Rio de Janeiro: LTC. 1999.
Obtido em "http://pt.wikipedia.org/wiki/Sistema_operativo"