Loading AI tools
linguagem de programação Da Wikipédia, a enciclopédia livre
PL/I (alternativamente PL/1, lê-se pê-ele-um) significa Programming Language One e é uma linguagem de programação desenvolvida pela IBM em meados de 1960. A previsão da IBM era que a linguagem fosse utilizada em ciências, inteligência artificial e negócios. Por um período de tempo foi a principal linguagem ensinada na Universidade de Michigan Dearborn. Entretanto, a popularidade declinou nos anos recentes, devido à introdução de línguagens de programação mais modernas voltadas para o ambiente Mainframe.
Sua principal função é o processamento/manipulação de dados; suporta recursão e alocação dinâmica.[1]
<instrução> ;
LABEL: PROC OPTIONS (MAIN) ; Identificação do programa DECLARE arquivos , Declaração de variáveis campos , PICTUREs de edição , tabelas , estruturas , inicializações , redefinições , funções (BUILT-IN) , rotinas externas; ON CONDITIONS ; Tratamento de condições COMANDOS ; Comandos / Instruções movimentações ; expressões ; concatenação ; condições ; LOOPs ; manipulação de arquivos ; manipulação de banco de dados ; chamadas de rotinas internas; chamadas de rotinas externas; COMANDOS ; ROT-LABEL: PROC ; Identificação da Sub-rotina interna END ROT-LABEL ; Finalização da Sub-rotina interna END LABEL ; Finalização do programa
= Igual ^= diferente > maior >= maior ou igual < menor <= menor ou igual
SELECT (<campo>); WHEN (<valor> ou <condição>) --<comando>--; ... WHEN (<valor> ou <condição>) --<comando>--; OTHERWISE --<comando>--; END;
IF --<condição>-- THEN --<comando>--; ELSE --<comando>--;
DO WHILE (--CONDICAO--); --COMANDOS--; END;
O compilador PL/I permite usar variáveis que são consideradas "reservadas" em outras linguagens (como IF, ELSE, THEN,etc) e usa o mesmo símbolo('=') para verificar a igualdade e atribuição. Por exemplo:
IF IF = THEN THEN THEN = ELSE; ELSE ELSE = IF;
FINDSTRINGS: PROCEDURE OPTIONS(MAIN); /* READ A STRING, THEN PRINT EVERY */ /* SUBSEQUENT LINE WITH A MATCH */ DECLARE PAT VARYING CHARACTER(100), LINEBUF VARYING CHARACTER(100), (LINENO, NDFILE, IX) FIXED BINARY; NDFILE = 0; ON ENDFILE(SYSIN) NDFILE=1; GET EDIT(PAT) (A); LINENO = 1; DO WHILE (NDFILE=0); GET EDIT(LINEBUF) (A); IF LENGTH(LINEBUF) > 0 THEN DO; IX = INDEX(LINEBUF, PAT); IF IX > 0 THEN DO; PUT SKIP EDIT (LINENO,LINEBUF)(F(2),A); END; END; LINENO = LINENO + 1; END; END FINDSTRINGS;
HELLO: PROCEDURE OPTIONS (MAIN); /* A PROGRAM TO OUTPUT HELLO WORLD */ FLAG = 0; LOOP: DO WHILE (FLAG = 0); PUT SKIP LIST('HELLO WORLD!'); END; END HELLO;
program nperfeitos declare n,qtd,soma,contador,i,j: int; numeros: array[1..40] of int; begin display('Valor de N') reply(n); qtd=0; i=2; while qtd<n do begin soma=0; j=1; while j<i do begin if (i%j=0) then begin soma=soma+j; end; else j=j+1; endif; if (soma=i) then begin numeros[qtd+1]=i; qtd=qtd+1; end; else i=i+1; endif; for contador=1 to n do begin display(numeros[contador]); end;
SHELL: PROCEDURE OPTIONS (MAIN); DECLARE ARRAY(50) FIXED BIN(15), (K,N) FIXED BIN(15); GET LIST(N); GET EDIT((ARRAY(K) DO K = 1 TO N)); PUT EDIT((ARRAY(K) DO K = 1 TO N)); CALL BUBBLE(ARRAY,N); END BUBBLE; BUBBLE: PROCEDURE(ARRAY,N); /* BUBBLE SORT*/ DECLARE (I,J) FIXED BIN(15); DECLARE S BIT(1); /* SWITCH */ DECLARE Y FIXED BIN(15); /* TEMPO */ DO I = N-1 BY -1 TO 1; S = '1'B; DO J = 1 TO I; IF X(J)>X(J+1) THEN DO; S = '0'B; Y = X(J); X(J) = X(J+1); X(J+1) = Y; END; END; IF S THEN RETURN; END; RETURN; END SRT;
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.