Buscar

trabalhando com string, e val

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

ultima lista de exercicios 3.pas
{Escreva um programa em Pascal para cálculo de dígito verificador (DV) de agência
e de conta corrente de um sistema bancário. O usuário irá informar o número da agência e da
conta corrente e o programa deve calcular automaticamente o DV de cada um, conforme os
critérios abaixo:
a) Cada algarismo da agência e conta é multiplicado por um peso, começando de 2, da
direita para a esquerda. Para cada algarismo, o peso é acrescido de 1. Em seguida, soma-se
os produtos obtidos;
b) Calcule o resto da divisão desta soma por 11;
c) Subtraia de 11 o resto obtido;
d) Se o valor obtido for 10 ou 11, o dígito verificador será 0 (zero) e nos outros casos, o
dígito verificador é o próprio valor encontrado;
Obs: Considere que a agência sempre terá 4 dígitos e a conta 7 dígitos.}
Program Pzim ;
var numagencia,numconta:string;
		x,i,erro,cont:integer;
		soma,soma1,resto,resto1,subdoresto,subdoresto1:integer;
Begin
		writeln('informe o numero da agencia');
		readln(numagencia);
		writeln('informe o numero da conta');
		readln(numconta);
		cont:=2;
		soma:=0;
		soma:=0;
		for i:= length(numagencia) downto 1 do 
		begin
			Val(numagencia[i], x, erro);
			if erro = 0 then
			soma:= soma + x * cont;
			cont:= cont + 1;
		end;
		cont:=2;
		for i:= length(numconta) downto 1 do 
		begin
			Val(numconta[i], x, erro);
			if erro = 0 then
			soma1:= soma1 + x * cont;
			cont:= cont + 1;
		end;
		resto := soma mod 11 ;
		subdoresto:= 11 - resto;
		resto1:=soma1 mod 11;
		subdoresto1:=11 - resto1;
		if ((subdoresto = 10) or (subdoresto = 11)) then
		 writeln('seu dv da agencia será 0')
		 else
				 if ((subdoresto1 = 10) or (subdoresto1 = 11)) then			
		 	writeln('seu dv da conta será 0') 
		 else
		 writeln('seu dv da agencia será'' ',subdoresto);
		 writeln('seu dv da conta será'' ',subdoresto1);
		 
		 readkey;
			 	 
End.
ultima lista de exercicios agenda telefonica.pas
PROGRAM Agenda_Telefonica;
USES CRT;
VAR
 i, j, TotalContatos,x, menu : integer;
 ultimoCadastrado:integer; 
 ProcuraContato: integer;
 nomes	: array[1..50] of string;
 
 Agenda: ARRAY[1..50] OF RECORD
			 nome, sexo , endereco: string;
 telefone	: string[9];
 data: integer;
						 codigo:integer;
						 ativo: boolean; 
			 END;
BEGIN
				i:= 1;
	REPEAT
				writeln('*****************************************');
				writeln(' Agenda telefonica ');
				writeln('*****************************************');
				writeln;
				writeln('1 - Cadastrar Contato.');
				writeln('2 - Pesquisar Contato.');	
				writeln('3 - Exibir Contatos.');
				writeln('4 - Sair.');
				writeln;
				write('Opcao desejada: ');
				readln(menu);
				writeln;
				writeln('*****************************************');
				CASE menu OF
				// Caso 1 	
				1: BEGIN
										x := ultimoCadastrado + 1;
										writeln('Novo Contato');
										writeln;
										Agenda[x].codigo := x;
										writeln('codigo: ',Agenda[x].codigo);
										write('Nome: '); 
										readln(Agenda[i].nome);
										write('Telefone: '); 
										readln(Agenda[i].telefone);
										write('endereco: '); 
										readln(Agenda[i].endereco);
										write('sexo: '); 
										readln(Agenda[i].sexo);
										write('Data de nascimento: '); 
										readln(Agenda[i].data);	
										Agenda[i].ativo := true;
										if Agenda[i].ativo = true then
											 writeln('contato ativo');
											 writeln;
											 writeln('Contato salvo... Pressione Enter.');
											 readln;
											 clrscr;
											 ultimoCadastrado := x;
											 i:= i + 1;
							END;
				// Caso 2		
				2: BEGIN
											write('Informe o codigo: '); 
											readln(ProcuraContato);
											writeln('************************************');
											IF (ProcuraContato <> 0) THEN
											BEGIN
												FOR j := 1 TO 50 DO
												BEGIN
														IF (ProcuraContato = Agenda[j].codigo) THEN
														BEGIN
															 writeln('Codigo : ', Agenda[j].codigo);
																writeln('Nome : ', Agenda[j].nome);
																writeln('Telefone : ', Agenda[j].telefone);
																writeln('Endereco : ', Agenda[j].endereco);
																writeln('sexo : ', Agenda[j].sexo);
																writeln('Data : ', Agenda[j].data);
																writeln('Ativo');
																writeln('***********************************');
													 END;
												END;
												 IF (ProcuraContato <> Agenda[j].codigo) THEN
													 writeln('Contato nao encontrado');
											END;
											
											readln;
											clrscr;
					END;
		
				// Caso 3 		
					3: BEGIN
											TotalContatos := 0;
												FOR j := 1 TO 50 DO
												BEGIN
														IF (Agenda[j].nome <> '') THEN
														BEGIN
																	writeln('Codigo : ', Agenda[j].codigo);
																 writeln('Nome : ', Agenda[j].nome);
																 writeln('Telefone : ', Agenda[j].telefone);
																 writeln('Endereco : ', Agenda[j].endereco);
																 writeln('sexo : ', Agenda[j].sexo);
																 writeln('Data : ', Agenda[j].data);
																	writeln('-----------------------------------------');
																	TotalContatos := TotalContatos + 1;
														END;		
												END; 
											writeln('Total de Contatos: ', TotalContatos);
											writeln('Capacidade disponivel: ', 50 - TotalContatos);			 
											readln;
											clrscr;		
						END;
	END;
	
UNTIL ( menu = 4 );
	readln;
END.
ultima lista de exercicios converter numero binario.pas
//Escreva um programa em Pascal que solicite ao usuário um número binário de 8
//bits e em seguida converta-o para o número decimal correspondente e exiba na tela.
Program Pzim ;
var numbi:string;
		cont,x,erro,i:integer;
		soma:real;
Begin
 write('digite 8 numeros binarios:');
 readln(numbi);
 cont := 0;
 for i:=Length(numbi) downto 1 do 
 begin
 		Val(numbi[i], x, erro);
 		if erro = 0 then
 			soma := soma + x * (exp(cont*ln(2))) ;
 			cont:=cont + 1;
 end;
 			writeln('o numero decimal é:',soma:5:0);
		 readkey;
		 
end.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais