Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Mandinha18

[Resolvido] Comando alterar no Cobol

Recommended Posts

Olá gente, eu to precisando da ajuda de vocês. To fazendo um trabalho bimestral em cobol, e nesse trabalho eu tenho q fazer uma tela que usa a função alterar com as seguintes variáveis:


01 REG-ALUNO.
02 WS-NOME PIC X(20).
02 WS-COMPLEMENTO PIC X(20).
02 WS-CIDADE PIC X(20).
02 WS-ESTADO PIC X(20).
02 WS-CPF PIC 9(12).
02 WS-RG PIC 9(10).
02 DATA-NASCIMENTO.
03 DIA-NASCIMENTO PIC 9(02).
03 MES-NASCIMENTO PIC 9(02).
03 ANO-NASCIMENTO PIC 9(04).
02 ENDERECO.
03 LOUGRADOURO PIC X(20).
03 NUMERO PIC 9(05).
02 TELEFONE.
03 DDD PIC 9(02).
03 NUMERO-TEL PIC 9(08).

Vocês sabem como posso fazer essa função(de preferência dentro de uma section).Desde já agradeço.

ATT++

Editado por dif
ajeitar a tag CODE

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vocês sabem como posso fazer essa função(de preferência dentro de uma section).Desde já agradeço.

Olá Mandinha18,

Não entendí. Como assim alterar? Você irá ter os dados gravados e regravados, é isso?

Lembrando que a Screen Section é uma seção do Data Division que descreve os arquivos de entrada e saída que serão usadas pelo programa. Também define as áreas de trabalho e constantes necessárias para o processamento dos dados.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oie, então meus dados serão gravados e depois eu tenho q alterá-los. Eu fiz uma section para o comando incluir e uma para o consultar e chamei essa funções usando um if. Cada função dessa tem sua própria tela que mostra os dados q serão precisos para incluir ou para consultar. Mais ainda não sei como fazer uma função alterar desse jeito, porque não sei qual comando usar para fazer a alteração.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oie, então meus dados serão gravados e depois eu tenho q alterá-los. Eu fiz uma section para o comando incluir e uma para o consultar e chamei essa funções usando um if. Cada função dessa tem sua própria tela que mostra os dados q serão precisos para incluir ou para consultar. Mais ainda não sei como fazer uma função alterar desse jeito, porque não sei qual comando usar para fazer a alteração.

Olá Mandinha18,

Se você já tem o escopo de gravação e consulta, você uctiliza a mesma section para regravar. Irá usar o comando Read para leitura dos registros, Move para mover a section do registro para o da tela, Display para mostrar (pode ser a mesma section do próprio registro), Accept (nos campos) para aceitar novos dados e no final da tela o Rewrite para regravar o registro no arquivo.

Abs.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você já tem o escopo de gravação e consulta, você uctiliza a mesma section para regravar. Irá usar o comando Read para leitura dos registros, Move para mover a section do registro para o da tela, Display para mostrar (pode ser a mesma section do próprio registro), Accept (nos campos) para aceitar novos dados e no final da tela o Rewrite para regravar o registro no arquivo.

Eu não entendi mt bem o que você quis dizer.

essas são minhas sections

Código:

      **************************************************************.
030-INCLUSAO SECTION.
**************************************************************.
030-INICIO.

OPEN EXTEND ALUNO.
IF FS-STATUS NOT EQUAL '00'
OPEN OUTPUT ALUNO.
DISPLAY TELA-INCLUSAO.

ACCEPT (08, 44) WS-NOME.
ACCEPT (09, 58) DIA-NASCIMENTO.
ACCEPT (10, 48) LOUGRADOURO.
ACCEPT (11, 51) NUMERO.
ACCEPT (12, 46) WS-CIDADE.
ACCEPT (13, 46) WS-ESTADO.
ACCEPT (14, 48) NUMERO-TEL.
ACCEPT (15, 43) WS-CPF.
ACCEPT (16, 42) WS-RG.

WRITE REG-ALUNO.

040-FIM.
CLOSE ALUNO.

030-EXIT.
EXIT.

**************************************************************.
040-CONSULTA SECTION.
**************************************************************.
040-INICIO.

OPEN INPUT ALUNO.
DISPLAY TELA-CONSULTA.
ACCEPT (07, 48) WS-PESQ-NOME.

040-LEITURA.
READ ALUNO INTO REG-ALUNO
AT END
GO TO 040-FIM.

IF WS-NOME EQUAL WS-PESQ-NOME
DISPLAY (08, 44) WS-NOME
DISPLAY (09, 58) DIA-NASCIMENTO
DISPLAY (10, 48) LOUGRADOURO
DISPLAY (11, 51) NUMERO
DISPLAY (12, 46) WS-CIDADE
DISPLAY (13, 46) WS-ESTADO
DISPLAY (14, 48) NUMERO-TEL
DISPLAY (15, 43) WS-CPF
DISPLAY (16, 42) WS-RG
ACCEPT (01, 01) WS-PESQ-NOME
.

GO TO 040-LEITURA.

040-FIM.

CLOSE ALUNO.


040-EXIT.
EXIT.

eu uso elas pra fazer a de alteração?Primeiro eu teria que consultar o nome para depois fazer a alteração dele não é?

ATT.

Editado por dif
Use a tag CODE para postar os códigos

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eu não entendi mt bem o que você quis dizer.

essas são minhas sections

Código:

      **************************************************************.
030-INCLUSAO SECTION.
**************************************************************.
030-INICIO.

OPEN EXTEND ALUNO.
IF FS-STATUS NOT EQUAL '00'
OPEN OUTPUT ALUNO.
DISPLAY TELA-INCLUSAO.

ACCEPT (08, 44) WS-NOME.
ACCEPT (09, 58) DIA-NASCIMENTO.
ACCEPT (10, 48) LOUGRADOURO.
ACCEPT (11, 51) NUMERO.
ACCEPT (12, 46) WS-CIDADE.
ACCEPT (13, 46) WS-ESTADO.
ACCEPT (14, 48) NUMERO-TEL.
ACCEPT (15, 43) WS-CPF.
ACCEPT (16, 42) WS-RG.

WRITE REG-ALUNO.

040-FIM.
CLOSE ALUNO.

030-EXIT.
EXIT.

**************************************************************.
040-CONSULTA SECTION.
**************************************************************.
040-INICIO.

OPEN INPUT ALUNO.
DISPLAY TELA-CONSULTA.
ACCEPT (07, 48) WS-PESQ-NOME.

040-LEITURA.
READ ALUNO INTO REG-ALUNO
AT END
GO TO 040-FIM.

IF WS-NOME EQUAL WS-PESQ-NOME
DISPLAY (08, 44) WS-NOME
DISPLAY (09, 58) DIA-NASCIMENTO
DISPLAY (10, 48) LOUGRADOURO
DISPLAY (11, 51) NUMERO
DISPLAY (12, 46) WS-CIDADE
DISPLAY (13, 46) WS-ESTADO
DISPLAY (14, 48) NUMERO-TEL
DISPLAY (15, 43) WS-CPF
DISPLAY (16, 42) WS-RG
ACCEPT (01, 01) WS-PESQ-NOME
.

GO TO 040-LEITURA.

040-FIM.

CLOSE ALUNO.


040-EXIT.
EXIT.

eu uso elas pra fazer a de alteração?Primeiro eu teria que consultar o nome para depois fazer a alteração dele não é?

ATT.

Olá Mandinha18,

Parto do principio que você já tenha o tela-consulta e o tela-inclusão definidos na Screen Section (no mesmo formato do REG-ALUNO) e também no início da Procedure Division você criou uma variável e faz a pergunta ao operador se ele quer incluir/consultar/alterar. Note que você não precisa ficar definindo várias telas na screen; como você vai usar sempre o mesmo padrão maximize o code e use apenas uma.

Você está usando um arquivo sequencial de dados, não há necessidade do INTO apenas o AT END e você está em loop neste parágrafo, inclusive mudando a posição do ACCEPT no WS-PESQ-NOME.

E sim, você deve criar um parágrafo fazendo a alteração usando a consulta para posteriormente regravar o registro.

Você está indo bem, mas dá para melhorar muito o seu código, deixando-o mais estrutural e enxuto; vai criando e postando que eu vou lhe ajudando.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parto do principio que você já tenha o tela-consulta e o tela-inclusão definidos na Screen Section (no mesmo formato do REG-ALUNO) e também no início da Procedure Division você criou uma variável e faz a pergunta ao operador se ele quer incluir/consultar/alterar. Note que você não precisa ficar definindo várias telas na screen; como você vai usar sempre o mesmo padrão maximize o code e use apenas uma.

Você está usando um arquivo sequencial de dados, não há necessidade do INTO apenas o AT END e você está em loop neste parágrafo, inclusive mudando a posição do ACCEPT no WS-PESQ-NOME.

E sim, você deve criar um parágrafo fazendo a alteração usando a consulta para posteriormente regravar o registro.

Você está indo bem, mas dá para melhorar muito o seu código, deixando-o mais estrutural e enxuto; vai criando e postando que eu vou lhe ajudando.

Abs.

Oie, é você partiu do principior certo eu tenho a tela de inclusão de consulta e de alteração. Eu não necessáriamente fiz uma pergunta, eu fiz a tela que tem essa opções e o usuário digita a opção q ele deseja e dai ele vai para uma dessas telas. Isso é o que eu tentei fazer até agora da parte de alteração.

  **************************************************************.
050-ALTERACAO SECTION.
**************************************************************.
050-INICIO.

OPEN INPUT ALUNO.
DISPLAY TELA-ALTERACAO.
ACCEPT (07, 48) WS-PESQ-NOME.

050-LEITURA.
READ ALUNO INTO REG-ALUNO
AT END
GO TO 050-FIM.

IF WS-NOME EQUAL WS-PESQ-NOME
DISPLAY (08, 44) WS-NOME
DISPLAY (09, 58) DIA-NASCIMENTO
DISPLAY (10, 48) LOUGRADOURO
DISPLAY (11, 51) NUMERO
DISPLAY (12, 46) WS-CIDADE
DISPLAY (13, 46) WS-ESTADO
DISPLAY (14, 48) NUMERO-TEL
DISPLAY (15, 43) WS-CPF
DISPLAY (16, 42) WS-RG
ACCEPT (01, 01) WS-PESQ-NOME
.
GO TO 040-LEITURA.

050-FIM

Não entendi a parte que você disse q estou mudando a posição do ACCEPT. E também como eu posso deixar o código mais inxuto. Lembrando que sou nova nisso e estou aprendendo ainda e sua ajuda ta sendo muito útil, esse trabalho tenho mais uma semana para termina e apresentar então você ta me ajudando mt mesmo.

ATT.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oie, é você partiu do principior certo eu tenho a tela de inclusão de consulta e de alteração. Eu não necessáriamente fiz uma pergunta, eu fiz a tela que tem essa opções e o usuário digita a opção q ele deseja e dai ele vai para uma dessas telas. Isso é o que eu tentei fazer até agora da parte de alteração.

  **************************************************************.
050-ALTERACAO SECTION.
**************************************************************.
050-INICIO.

OPEN INPUT ALUNO.
DISPLAY TELA-ALTERACAO.
ACCEPT (07, 48) WS-PESQ-NOME.

050-LEITURA.
READ ALUNO INTO REG-ALUNO
AT END
GO TO 050-FIM.

IF WS-NOME EQUAL WS-PESQ-NOME
DISPLAY (08, 44) WS-NOME
DISPLAY (09, 58) DIA-NASCIMENTO
DISPLAY (10, 48) LOUGRADOURO
DISPLAY (11, 51) NUMERO
DISPLAY (12, 46) WS-CIDADE
DISPLAY (13, 46) WS-ESTADO
DISPLAY (14, 48) NUMERO-TEL
DISPLAY (15, 43) WS-CPF
DISPLAY (16, 42) WS-RG
ACCEPT (01, 01) WS-PESQ-NOME
.
GO TO 040-LEITURA.

050-FIM

Não entendi a parte que você disse q estou mudando a posição do ACCEPT. E também como eu posso deixar o código mais inxuto. Lembrando que sou nova nisso e estou aprendendo ainda e sua ajuda ta sendo muito útil, esse trabalho tenho mais uma semana para termina e apresentar então você ta me ajudando mt mesmo.

ATT.

Olá Mandinha18,

Você tem até semana que vem (dia 24) para apresentar o trabalho? Mais do que suficiente se você entender o que estou tentando lhe passar.

Quando você usa um ACCEPT você está disponibilizando um campo para entrada de dados, este pode ser uma pergunta ou simplesmente você entrar com dados, depende apenas da informação que você disponibiliza (mostra) na tela para o operador/usuário.

Quanto a mudança (posição) do ACCEPT, observe:

No início: ACCEPT (07, 48) WS-PESQ-NOME.

No IF da leitura: ACCEPT (01, 01) WS-PESQ-NOME

, desta forma você muda na tela a posição de entrada dos dados; além de confundir o usuário você acaba poluindo a tela.

Quanto a enxugar o código, você está tratando a abertura do arquivo em todos os parágrafos. Uma vez que você tem a opção (inclusão/consulta/alteração) definida pelo usuário, você trata da abertura e fechamento na condição IF no começo da Procedure.

Outro detalhe, você não tem seções (SECTION) na PROCEDURE, apenas parágrafos, portanto, recomendo que quando quiseres fazer algúma observação no code como este:

**************************************************************.

050-ALTERACAO SECTION.

**************************************************************.

, esqueça numero de linhas e procure apenas identificar o parágrafo, como por exemplo:

**************************************************************.

ALTERACAO DE DADOS

**************************************************************.

, desta forma evita-se confundir a sintaxe com o código em sí.

Com o que aprendeu até agora, reformule seu code, faça o parágrafo da alteração de dados e sua respectiva regravação no arquivo mediante o comando que lhe disse lá no topo do tópico.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá gente, eu to precisando da ajuda de vocês. To fazendo um trabalho bimestral em cobol, e nesse trabalho eu tenho q fazer uma tela que usa a função alterar

Vocês sabem como posso fazer essa função(de preferência dentro de uma section).Desde já agradeço.

Olá Mandinha18,

Complicou, falta de tempo ou desistiu?

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Complicou, falta de tempo ou desistiu?

Abs.

:lol:Oiie, então eu não desisti não, to quase terminando tirando uns erros de lógica meus mesmo, falta bem pouco para termina o trabalho, as dicas que você me deu me ajudaram bastante, ontem mostrei pro meu professor o que eu tinha feito, e só faltava um if para terminar o programa.:lol:

Mais ainda to com problema nessa parte aqui


OPEN EXTEND ALUNO.
IF FS-STATUS NOT EQUAL '00'
OPEN OUTPUT ALUNO.
DISPLAY TELA-INCLUSAO.

Fica dando erro cada vez q eu tento executar, mais quando compilo não tem erro nenhum.O que pode ser esse erro?

Abs!

Editado por Mandinha18

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oiie, então eu não desisti não, to quase terminando tirando uns erros de lógica meus mesmo, falta bem pouco para termina o trabalho, as dicas que você me deu me ajudaram bastante, ontem mostrei pro meu professor o que eu tinha feito, e só faltava um if para terminar o programa.

Mais ainda to com problema nessa parte aqui



OPEN EXTEND ALUNO.
IF FS-STATUS NOT EQUAL '00'
OPEN OUTPUT ALUNO.
DISPLAY TELA-INCLUSAO.

Fica dando erro cada vez q eu tento executar, mais quando compilo não tem erro nenhum.O que pode ser esse erro?

Abs!

Oi Mandinha18,

Legal que você esteja conseguindo; quando terminar posta o code e vamos tentar melhorá-lo, deixá-lo mais enxuto.


OPEN EXTEND ALUNO.
IF FS-STATUS NOT EQUAL '00'
OPEN OUTPUT ALUNO.
DISPLAY TELA-INCLUSAO.

Provavelmente deva estar dando erro (execução) de abertura de arquivos e respectivamente erros de fechamento, por isso eu disse lá em cima que estava em duplicidade. Faltou o CLOSE.

Você poderia uctilizar o comando PERFORM e fazer o tratamento de abertura do arquivo uma vez só, além de ficar mais enxuto, o code fica mais estético.

Em todo o caso veja se dá certo essa instrução:



OPEN EXTEND ALUNO.
IF FS-STATUS EQUAL '35'
CLOSE ALUNO
OPEN OUTPUT ALUNO.
IF FS-STATUS NOT EQUAL '00'
CLOSE ALUNO
EXIT.
DISPLAY TELA-INCLUSAO.

Abs.

Editado por Lord Enigm@
Correção no Code.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Oi Mandinha18,

Legal que você esteja conseguindo; quando terminar posta o code e vamos tentar melhorá-lo, deixá-lo mais enxuto.


OPEN EXTEND ALUNO.
IF FS-STATUS NOT EQUAL '00'
OPEN OUTPUT ALUNO.
DISPLAY TELA-INCLUSAO.

Provavelmente deva estar dando erro (execução) de abertura de arquivos e respectivamente erros de fechamento, por isso eu disse lá em cima que estava em duplicidade. Faltou o CLOSE.

Você poderia uctilizar o comando PERFORM e fazer o tratamento de abertura do arquivo uma vez só, além de ficar mais enxuto, o code fica mais estético.

Em todo o caso veja se dá certo essa instrução:



OPEN EXTEND ALUNO.
IF FS-STATUS EQUAL '35'
CLOSE ALUNO
OPEN OUTPUT ALUNO.
IF FS-STATUS NOT EQUAL '00'
CLOSE ALUNO
EXIT.
DISPLAY TELA-INCLUSAO.

Abs.

Oie. Deu certo sim o que você passo, mais tive q muda só uma coisinha q você passo

           
OPEN EXTEND ALUNO.
IF FS-STATUS EQUAL '35'
CLOSE ALUNO
OPEN OUTPUT ALUNO.
IF FS-STATUS NOT EQUAL '00'
CLOSE ALUNO
DISPLAY TELA-INCLUSAO.

Ainda to com uns probleminhas mais acho q hj mesmo eu consigo termina.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oie. Deu certo sim o que você passo, mais tive q muda só uma coisinha q você passo

           
OPEN EXTEND ALUNO.
IF FS-STATUS EQUAL '35'
CLOSE ALUNO
OPEN OUTPUT ALUNO.
IF FS-STATUS NOT EQUAL '00'
CLOSE ALUNO
DISPLAY TELA-INCLUSAO.

Ainda to com uns probleminhas mais acho q hj mesmo eu consigo termina.

Abs.

Oi Mandinha18,

Se, na segunda condição o status do arquivo não for "00", não ok, deve fechá-lo e sair do programa.

Não entendí por que você mostra a tela de inclusão para um arquivo não ok e fechado e dá continuidade na execução.

Qq. dúvida estamos aqui.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Olá Mandinha18,

Complicou, falta de tempo ou desistiu?

Abs.

Esse é o código praticamente pronto, to tentando arruma só um probleminha no alterar, mais isso é td meu código:


IDENTIFICATION DIVISION.
PROGRAM-ID. XAXIXO.
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION,
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ALUNO ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS FS-STATUS.
DATA DIVISION.
FILE SECTION.
FD ALUNO
LABEL RECORD IS STANDARD
DATA RECORD IS REG-ALUNO
VALUE OF FILE-ID "TESTE.TXT".
01 REG-ALUNO.
02 WS-NOME PIC X(20).
02 WS-COMPLEMENTO PIC X(20).
02 WS-CIDADE PIC X(20).
02 WS-ESTADO PIC X(20).
02 WS-CPF PIC 9(12).
02 WS-RG PIC 9(10).
02 DATA-NASCIMENTO.
03 DIA-NASCIMENTO PIC 9(02).
03 MES-NASCIMENTO PIC 9(02).
03 ANO-NASCIMENTO PIC 9(04).
02 ENDERECO.
03 LOUGRADOURO PIC X(20).
03 NUMERO PIC 9(05).
02 TELEFONE.
03 DDD PIC 9(02).
03 NUMERO-TEL PIC 9(09).



WORKING-STORAGE SECTION.

01 WS-CONT PIC X(10).
01 WS-PESQ-NOME PIC X(20).


01 WS-OP-A PIC 9(1).
01 WS-OP PIC 9(1).
01 WS-OP-ALT PIC 9(1).
01 FS-STATUS PIC X(02) VALUE SPACES.

01 A PIC 9(02).

SCREEN SECTION.

01 TELA-MENU.
02 BLANK SCREEN BACKGROUND-COLOR 4 FOREGROUND-COLOR 7.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* SISTEMAS DE CONTROLE ACCADEMICO *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* *".
02 LINE 08 COLUMN 15 VALUE
"* 1 - ALUNOS *".
02 LINE 09 COLUMN 15 VALUE
"* 2 - PROFESSORES *".
02 LINE 10 COLUMN 15 VALUE
"* 3 - CURSOS *".
02 LINE 11 COLUMN 15 VALUE
"* 4 - CONSULTAS *".
02 LINE 12 COLUMN 15 VALUE
"* 5 - RELATORIOS *".
02 LINE 13 COLUMN 15 VALUE
"* 6 - SAIR *".
02 LINE 14 COLUMN 15 VALUE
"* *".
02 LINE 15 COLUMN 15 VALUE
"* OPCAO: ( ) *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".

01 TELA-ALUNO.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* MANUTENCAO ALUNOS-MENU PRINCIPAL *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* *".
02 LINE 08 COLUMN 15 VALUE
"* 1 - INCLUSAO *".
02 LINE 09 COLUMN 15 VALUE
"* 2 - ALTERACAO *".
02 LINE 10 COLUMN 15 VALUE
"* 3 - EXCLUSAO *".
02 LINE 11 COLUMN 15 VALUE
"* 4 - CONSULTA *".
02 LINE 12 COLUMN 15 VALUE
"* 5 - RELATORIO *".
02 LINE 13 COLUMN 15 VALUE
"* 6 - SAIR *".
02 LINE 14 COLUMN 15 VALUE
"* *".
02 LINE 15 COLUMN 15 VALUE
"* OPCAO: ( ) *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".

01 TELA-INCLUSAO.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* CADASTRO DE ALUNO *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* NOME: *".
02 LINE 08 COLUMN 15 VALUE
"* DATA DE NASCIMENTO: *".
02 LINE 09 COLUMN 15 VALUE
"* ENDERECO: *".
02 LINE 10 COLUMN 15 VALUE
"* COMPLEMENTO: *".
02 LINE 11 COLUMN 15 VALUE
"* CIDADE: *".
02 LINE 12 COLUMN 15 VALUE
"* ESTADO: *".
02 LINE 13 COLUMN 15 VALUE
"* TELEFONE: *".
02 LINE 14 COLUMN 15 VALUE
"* CPF: *".
02 LINE 15 COLUMN 15 VALUE
"* RG: *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".

01 TELA-ALTERACAO.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* CADASTRO DE ALUNO *".
02 LINE 07 COLUMN 15 VALUE
"* *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* NOME: *".
02 LINE 08 COLUMN 15 VALUE
"* DATA DE NASCIMENTO: *".
02 LINE 09 COLUMN 15 VALUE
"* ENDERECO: *".
02 LINE 10 COLUMN 15 VALUE
"* COMPLEMENTO: *".
02 LINE 11 COLUMN 15 VALUE
"* CIDADE: *".
02 LINE 12 COLUMN 15 VALUE
"* ESTADO: *".
02 LINE 13 COLUMN 15 VALUE
"* TELEFONE: *".
02 LINE 14 COLUMN 15 VALUE
"* CPF: *".
02 LINE 15 COLUMN 15 VALUE
"* RG: *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".

01 TELA-CONSULTA.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* CADASTRO DE ALUNO *".
02 LINE 07 COLUMN 15 VALUE
"* *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* NOME: *".
02 LINE 08 COLUMN 15 VALUE
"* DATA DE NASCIMENTO: *".
02 LINE 09 COLUMN 15 VALUE
"* ENDERECO: *".
02 LINE 10 COLUMN 15 VALUE
"* COMPLEMENTO: *".
02 LINE 11 COLUMN 15 VALUE
"* CIDADE: *".
02 LINE 12 COLUMN 15 VALUE
"* ESTADO: *".
02 LINE 13 COLUMN 15 VALUE
"* TELEFONE: *".
02 LINE 14 COLUMN 15 VALUE
"* CPF: *".
02 LINE 15 COLUMN 15 VALUE
"* RG: *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".

PROCEDURE DIVISION.

010-INICIO.

DISPLAY (01, 01) ERASE.

DISPLAY TELA-MENU.

ACCEPT (15, 46) WS-OP WITH PROMPT.

IF WS-OP EQUAL 1
PERFORM 020-ALUNO.

IF WS-OP EQUAL 6
GO TO 010-FIM.

GO TO 010-INICIO.

010-FIM.
STOP RUN.

**************************************************************.
020-ALUNO SECTION.
**************************************************************.
020-INICIO.

DISPLAY TELA-ALUNO.

ACCEPT (15, 46) WS-OP-A WITH PROMPT.

IF WS-OP-A EQUAL 1
PERFORM 030-INCLUSAO.

IF WS-OP-A EQUAL 2
PERFORM 050-ALTERACAO.

IF WS-OP-A EQUAL 4
PERFORM 040-CONSULTA.

IF WS-OP-A EQUAL 6
GO TO 020-FIM.


GO TO 020-INICIO.

020-FIM.
EXIT.

**************************************************************.
030-INCLUSAO SECTION.
**************************************************************.
030-INICIO.

OPEN OUTPUT ALUNO.
DISPLAY TELA-INCLUSAO.

ACCEPT (07, 44) WS-NOME.
ACCEPT (08, 58) DIA-NASCIMENTO.
ACCEPT (08, 61) MES-NASCIMENTO.
ACCEPT (08, 64) ANO-NASCIMENTO.
ACCEPT (09, 48) LOUGRADOURO.
ACCEPT (10, 51) NUMERO.
ACCEPT (11, 46) WS-CIDADE.
ACCEPT (12, 46) WS-ESTADO.
ACCEPT (13, 46) DDD.
ACCEPT (13, 50) NUMERO-TEL.
ACCEPT (14, 43) WS-CPF.
ACCEPT (15, 42) WS-RG.

WRITE REG-ALUNO.

040-FIM.
CLOSE ALUNO.

030-EXIT.
EXIT.

**************************************************************.
040-CONSULTA SECTION.
**************************************************************.
040-INICIO.

OPEN INPUT ALUNO.
DISPLAY TELA-CONSULTA.
DISPLAY (06, 20) ' Digite um nome para consulta: '.
ACCEPT (06, 51) WS-PESQ-NOME.

040-LEITURA.
READ ALUNO INTO REG-ALUNO
AT END
GO TO 040-FIM.

IF WS-NOME EQUAL WS-PESQ-NOME
DISPLAY (07, 44) WS-NOME
DISPLAY (08, 58) DIA-NASCIMENTO
DISPLAY (08, 61) MES-NASCIMENTO
DISPLAY (08, 64) ANO-NASCIMENTO
DISPLAY (09, 48) LOUGRADOURO
DISPLAY (10, 51) NUMERO
DISPLAY (11, 46) WS-CIDADE
DISPLAY (12, 46) WS-ESTADO
DISPLAY (13, 46) DDD
DISPLAY (13, 50) NUMERO-TEL
DISPLAY (14, 43) WS-CPF
DISPLAY (15, 42) WS-RG
ACCEPT (07, 49) WS-PESQ-NOME
.

GO TO 040-LEITURA.

040-FIM.
CLOSE ALUNO.

040-EXIT.
EXIT.

**************************************************************.
050-ALTERACAO SECTION.
**************************************************************.
050-INICIO.

OPEN I-O ALUNO.
DISPLAY TELA-CONSULTA.
DISPLAY (06, 20) ' Digite um nome para alterar: '.
ACCEPT (06, 50) WS-PESQ-NOME.

050-LEITURA.
READ ALUNO INTO REG-ALUNO
AT END
GO TO 050-FIM.

IF WS-NOME EQUAL WS-PESQ-NOME
DISPLAY (07, 44) WS-NOME
DISPLAY (08, 58) DIA-NASCIMENTO
DISPLAY (08, 61) MES-NASCIMENTO
DISPLAY (08, 64) ANO-NASCIMENTO
DISPLAY (09, 48) LOUGRADOURO
DISPLAY (10, 51) NUMERO
DISPLAY (11, 46) WS-CIDADE
DISPLAY (12, 46) WS-ESTADO
DISPLAY (13, 46) DDD
DISPLAY (13, 50) NUMERO-TEL
DISPLAY (14, 43) WS-CPF
DISPLAY (15, 42) WS-RG
ACCEPT (07, 44) WS-NOME
ACCEPT (08, 58) DIA-NASCIMENTO
ACCEPT (08, 61) MES-NASCIMENTO
ACCEPT (08, 64) ANO-NASCIMENTO
ACCEPT (09, 48) LOUGRADOURO
ACCEPT (10, 51) NUMERO
ACCEPT (11, 46) WS-CIDADE
ACCEPT (12, 46) WS-ESTADO
ACCEPT (13, 46) DDD
ACCEPT (13, 50) NUMERO-TEL
ACCEPT (14, 43) WS-CPF
ACCEPT (15, 42) WS-RG
REWRITE REG-ALUNO
.


GO TO 050-LEITURA.

050-FIM.
CLOSE ALUNO.

050-EXIT.
EXIT.

As sections tem q ser desse jeito mesmo, meu prof que falo. Mais acho que é isso, se você puder tenho mais uma duvida, como faço pra alterar só o campo que eu quero, porque na minha lógica, eu tenho q alterar todos os campos, se não a hora que eu consulto ele aparece em branco ou cheio de zeros.

Abs.

Editado por dif
Código ficou extenso demais. use a tag spoiler quando for extenso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se, na segunda condição o status do arquivo não for "00", não ok, deve fechá-lo e sair do programa.

Não entendí por que você mostra a tela de inclusão para um arquivo não ok e fechado e dá continuidade na execução.

Qq. dúvida estamos aqui.

Abs.

Oi,Lord Enigm@

Eu usei assim, porque foi a única maneira que meu compilador aceito, mais em td caso, eu tive que muda de novo essa parte e tirei aparte que faz o código começar com linhas preenchidas já, estava me complicando para entender.

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Mandinha18,

Parabéns! Até que para quem começou está indo muito bem. Eu só mudaria a cor de fundo; vermelho ficou muito "berrante", eu colocaria um fundo azul com letras amarelas.

Parece que você aboliu a verificação do status no arquivo, veja se teu professor não vai te cobrar isso.

Vamos lá:

Esse é o código praticamente pronto, to tentando arruma só um probleminha no alterar, mais isso é td meu código:

As sections tem q ser desse jeito mesmo, meu prof que falo. Mais acho que é isso, se você puder tenho mais uma duvida, como faço pra alterar só o campo que eu quero, porque na minha lógica, eu tenho q alterar todos os campos, se não a hora que eu consulto ele aparece em branco ou cheio de zeros.

Realmente se você alterar dando um ACCEPT direto ele vai assumir os valores originais definidos na FD do arquivo e irá regravar com esses valores. Para resolver esse problema, uctilize a instrução WITH UPDATE após cada ACCEPT na regravação.

Exemplo:

ACCEPT (07, 44) WS-NOME WITH UPDATE

Você irá fazer os cadastros Professores e Cursos?

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Oi Mandinha18,

Parabéns! Até que para quem começou está indo muito bem. Eu só mudaria a cor de fundo; vermelho ficou muito "berrante", eu colocaria um fundo azul com letras amarelas.

Parece que você aboliu a verificação do status no arquivo, veja se teu professor não vai te cobrar isso.

Vamos lá:

Realmente se você alterar dando um ACCEPT direto ele vai assumir os valores originais definidos na FD do arquivo e irá regravar com esses valores. Para resolver esse problema, uctilize a instrução WITH UPDATE após cada ACCEPT na regravação.

Exemplo:

Você irá fazer os cadastros Professores e Cursos?

Abs.

:aplausos:Oie, não vou precisa fazer o professor e curso, só se eu tiver que fazer exame final. É funciono o WITH UPDATE no trabalho. Eu não sei como fazer a verificação de status do arquivo, mais acho que meu prof não vai pedir ele não comento com a gente sobre isso, mais então ta prontinho meu trabalho, achei que não ia consegui terminar ele a tempo para entrega. :aplausos:


PROGRAM-ID. XAXIXO.
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION,
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ALUNO ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL
ACCESS MODE IS SEQUENTIAL
FILE STATUS IS FS-STATUS.
DATA DIVISION.
FILE SECTION.
FD ALUNO
LABEL RECORD IS STANDARD
DATA RECORD IS REG-ALUNO
VALUE OF FILE-ID "TESTE.TXT1".
01 REG-ALUNO.
02 WS-NOME PIC X(30).
02 WS-COMPLEMENTO PIC X(20).
02 WS-CIDADE PIC X(20).
02 WS-ESTADO PIC X(20).
02 WS-CPF PIC 9(12).
02 WS-RG PIC 9(10).
02 DATA-NASCIMENTO.
03 DIA-NASCIMENTO PIC 9(02).
03 MES-NASCIMENTO PIC 9(02).
03 ANO-NASCIMENTO PIC 9(04).
02 ENDERECO.
03 LOUGRADOURO PIC X(20).
03 NUMERO PIC 9(05).
02 TELEFONE.
03 DDD PIC 9(02).
03 NUMERO-TEL PIC 9(09).



WORKING-STORAGE SECTION.

01 WS-CONT PIC X(10).
01 WS-PESQ-NOME PIC X(20).


01 WS-OP-A PIC 9(1).
01 WS-OP PIC 9(1).
01 WS-OP-ALT PIC 9(1).
01 FS-STATUS PIC X(02) VALUE SPACES.

01 A PIC 9(02).

SCREEN SECTION.

01 TELA-MENU.
02 BLANK SCREEN BACKGROUND-COLOR 1 FOREGROUND-COLOR 3.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* SISTEMAS DE CONTROLE ACCADEMICO *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* *".
02 LINE 08 COLUMN 15 VALUE
"* 1 - ALUNOS *".
02 LINE 09 COLUMN 15 VALUE
"* 2 - PROFESSORES *".
02 LINE 10 COLUMN 15 VALUE
"* 3 - CURSOS *".
02 LINE 11 COLUMN 15 VALUE
"* 4 - CONSULTAS *".
02 LINE 12 COLUMN 15 VALUE
"* 5 - RELATORIOS *".
02 LINE 13 COLUMN 15 VALUE
"* 6 - SAIR *".
02 LINE 14 COLUMN 15 VALUE
"* *".
02 LINE 15 COLUMN 15 VALUE
"* OPCAO: ( ) *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".

01 TELA-ALUNO.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* MANUTENCAO ALUNOS-MENU PRINCIPAL *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* *".
02 LINE 08 COLUMN 15 VALUE
"* 1 - INCLUSAO *".
02 LINE 09 COLUMN 15 VALUE
"* 2 - ALTERACAO *".
02 LINE 10 COLUMN 15 VALUE
"* 3 - EXCLUSAO *".
02 LINE 11 COLUMN 15 VALUE
"* 4 - CONSULTA *".
02 LINE 12 COLUMN 15 VALUE
"* 5 - RELATORIO *".
02 LINE 13 COLUMN 15 VALUE
"* 6 - SAIR *".
02 LINE 14 COLUMN 15 VALUE
"* *".
02 LINE 15 COLUMN 15 VALUE
"* OPCAO: ( ) *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".

01 TELA-INCLUSAO.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* CADASTRO DE ALUNO *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* NOME: *".
02 LINE 08 COLUMN 15 VALUE
"* DATA DE NASCIMENTO: *".
02 LINE 09 COLUMN 15 VALUE
"* ENDERECO: *".
02 LINE 10 COLUMN 15 VALUE
"* COMPLEMENTO/N: *".
02 LINE 11 COLUMN 15 VALUE
"* CIDADE: *".
02 LINE 12 COLUMN 15 VALUE
"* ESTADO: *".
02 LINE 13 COLUMN 15 VALUE
"* TELEFONE: *".
02 LINE 14 COLUMN 15 VALUE
"* CPF: *".
02 LINE 15 COLUMN 15 VALUE
"* RG: *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".

01 TELA-ALTERACAO.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* CADASTRO DE ALUNO *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* NOME: *".
02 LINE 08 COLUMN 15 VALUE
"* DATA DE NASCIMENTO: *".
02 LINE 09 COLUMN 15 VALUE
"* ENDERECO: *".
02 LINE 10 COLUMN 15 VALUE
"* COMPLEMENTO/N: *".
02 LINE 11 COLUMN 15 VALUE
"* CIDADE: *".
02 LINE 12 COLUMN 15 VALUE
"* ESTADO: *".
02 LINE 13 COLUMN 15 VALUE
"* TELEFONE: *".
02 LINE 14 COLUMN 15 VALUE
"* CPF: *".
02 LINE 15 COLUMN 15 VALUE
"* RG: *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".

01 TELA-CONSULTA.
02 LINE 01 COLUMN 15 VALUE
"******************************************************".
02 LINE 02 COLUMN 15 VALUE
"* *".
02 LINE 03 COLUMN 15 VALUE
"* CADASTRO DE ALUNO *".
02 LINE 04 COLUMN 15 VALUE
"* *".
02 LINE 05 COLUMN 15 VALUE
"******************************************************".
02 LINE 06 COLUMN 15 VALUE
"* *".
02 LINE 07 COLUMN 15 VALUE
"* NOME: *".
02 LINE 08 COLUMN 15 VALUE
"* DATA DE NASCIMENTO: *".
02 LINE 09 COLUMN 15 VALUE
"* ENDERECO: *".
02 LINE 10 COLUMN 15 VALUE
"* COMPLEMENTO/N: *".
02 LINE 11 COLUMN 15 VALUE
"* CIDADE: *".
02 LINE 12 COLUMN 15 VALUE
"* ESTADO: *".
02 LINE 13 COLUMN 15 VALUE
"* TELEFONE: *".
02 LINE 14 COLUMN 15 VALUE
"* CPF: *".
02 LINE 15 COLUMN 15 VALUE
"* RG: *".
02 LINE 16 COLUMN 15 VALUE
"* *".
02 LINE 17 COLUMN 15 VALUE
"******************************************************".
PROCEDURE DIVISION.

010-INICIO.

DISPLAY (01, 01) ERASE.

DISPLAY TELA-MENU.

ACCEPT (15, 46) WS-OP WITH PROMPT.

IF WS-OP EQUAL 1
PERFORM 020-ALUNO.

IF WS-OP EQUAL 6
GO TO 010-FIM.

GO TO 010-INICIO.

010-FIM.
STOP RUN.

**************************************************************.
020-ALUNO SECTION.
**************************************************************.
020-INICIO.

DISPLAY TELA-ALUNO.

ACCEPT (15, 46) WS-OP-A WITH PROMPT.

IF WS-OP-A EQUAL 1
PERFORM 030-INCLUSAO.

IF WS-OP-A EQUAL 2
PERFORM 050-ALTERACAO.

IF WS-OP-A EQUAL 4
PERFORM 040-CONSULTA.

IF WS-OP-A EQUAL 6
GO TO 020-FIM.


GO TO 020-INICIO.

020-FIM.
EXIT.

**************************************************************.
030-INCLUSAO SECTION.
**************************************************************.
030-INICIO.


OPEN OUTPUT ALUNO
DISPLAY TELA-INCLUSAO.

ACCEPT (07, 34) WS-NOME.
ACCEPT (08, 48) DIA-NASCIMENTO.
ACCEPT (08, 51) MES-NASCIMENTO.
ACCEPT (08, 54) ANO-NASCIMENTO.
ACCEPT (09, 38) LOUGRADOURO.
ACCEPT (10, 44) NUMERO.
ACCEPT (11, 36) WS-CIDADE.
ACCEPT (12, 36) WS-ESTADO.
ACCEPT (13, 38) DDD.
ACCEPT (13, 41) NUMERO-TEL.
ACCEPT (14, 33) WS-CPF.
ACCEPT (15, 32) WS-RG.

WRITE REG-ALUNO.

040-FIM.
CLOSE ALUNO.

030-EXIT.
EXIT.

**************************************************************.
040-CONSULTA SECTION.
**************************************************************.
040-INICIO.

OPEN INPUT ALUNO.
DISPLAY TELA-CONSULTA.
DISPLAY (06, 17) ' Digite um nome para consulta: '.
ACCEPT (06, 48) WS-PESQ-NOME.

040-LEITURA.
READ ALUNO INTO REG-ALUNO
AT END
GO TO 040-FIM.

IF WS-NOME EQUAL WS-PESQ-NOME
DISPLAY (07, 34) WS-NOME
DISPLAY (08, 48) DIA-NASCIMENTO
DISPLAY (08, 51) MES-NASCIMENTO
DISPLAY (08, 54) ANO-NASCIMENTO
DISPLAY (09, 38) LOUGRADOURO
DISPLAY (10, 44) NUMERO
DISPLAY (11, 36) WS-CIDADE
DISPLAY (12, 36) WS-ESTADO
DISPLAY (13, 38) DDD
DISPLAY (13, 41) NUMERO-TEL
DISPLAY (14, 33) WS-CPF
DISPLAY (15, 32) WS-RG
ACCEPT (07, 49) WS-PESQ-NOME
.

GO TO 040-LEITURA.

040-FIM.
CLOSE ALUNO.

040-EXIT.
EXIT.

**************************************************************.
050-ALTERACAO SECTION.
**************************************************************.
050-INICIO.

OPEN I-O ALUNO.
DISPLAY TELA-CONSULTA.
DISPLAY (06, 17) ' Digite um nome para alterar: '.
ACCEPT (06, 48) WS-PESQ-NOME.

050-LEITURA.
READ ALUNO INTO REG-ALUNO
AT END
GO TO 050-FIM.

IF WS-NOME EQUAL WS-PESQ-NOME
DISPLAY (07, 34) WS-NOME
DISPLAY (08, 48) DIA-NASCIMENTO
DISPLAY (08, 51) MES-NASCIMENTO
DISPLAY (08, 54) ANO-NASCIMENTO
DISPLAY (09, 38) LOUGRADOURO
DISPLAY (10, 44) NUMERO
DISPLAY (11, 36) WS-CIDADE
DISPLAY (12, 36) WS-ESTADO
DISPLAY (13, 38) DDD
DISPLAY (13, 41) NUMERO-TEL
DISPLAY (14, 33) WS-CPF
DISPLAY (15, 32) WS-RG
ACCEPT (07, 34) WS-NOME WITH UPDATE
ACCEPT (08, 48) DIA-NASCIMENTO WITH UPDATE
ACCEPT (08, 51) MES-NASCIMENTO WITH UPDATE
ACCEPT (08, 54) ANO-NASCIMENTO WITH UPDATE
ACCEPT (09, 38) LOUGRADOURO WITH UPDATE
ACCEPT (10, 44) NUMERO WITH UPDATE
ACCEPT (11, 36) WS-CIDADE WITH UPDATE
ACCEPT (12, 36) WS-ESTADO WITH UPDATE
ACCEPT (13, 36) DDD WITH UPDATE
ACCEPT (13, 41) NUMERO-TEL WITH UPDATE
ACCEPT (14, 33) WS-CPF WITH UPDATE
ACCEPT (15, 32) WS-RG WITH UPDATE
REWRITE REG-ALUNO
.


GO TO 050-LEITURA.

050-FIM.
CLOSE ALUNO.

050-EXIT.
EXIT.
 IDENTIFICATION DIVISION.

igual meus amigos falaram já da pra arranjar um emprego no banco kkkkk. valeu por td ajuda que você me deu.:jump:

Abs...:kiss:

Editado por dif
Usar a tag CODE também

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme solicitado, estamos reabrindo este tópico!

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não sei como fazer a verificação de status do arquivo, mais acho que meu prof não vai pedir ele não comento com a gente sobre isso

igual meus amigos falaram já da pra arranjar um emprego no banco kkkkk.

Olá Mandinha18,

Você fez a verificação logo no começo do tópico, mas resolveu tirá-la. Outro detalhe é, do jeito que está a abertura na inclusão, toda vez que você for fazer uma uma inclusão de registro você está abrindo um novo arquivo por cima do outro que já existia perdendo dados desta forma.

Uctilize a instrução EXTEND na abertura do arquivo, na inclusão. Vide:

   

**************************************************************.
030-INCLUSAO SECTION.
**************************************************************.
030-INICIO.

[COLOR=red]OPEN EXTEND ALUNO[/COLOR]
[COLOR=red] IF FS-STATUS NOT = "00"[/COLOR]
[COLOR=red] CLOSE ALUNO[/COLOR]
[COLOR=red] OPEN OUTPUT ALUNO.[/COLOR]
DISPLAY TELA-INCLUSAO.

ACCEPT (07, 34) WS-NOME.
ACCEPT (08, 48) DIA-NASCIMENTO.
ACCEPT (08, 51) MES-NASCIMENTO.
ACCEPT (08, 54) ANO-NASCIMENTO.
ACCEPT (09, 38) LOUGRADOURO.
ACCEPT (10, 44) NUMERO.
ACCEPT (11, 36) WS-CIDADE.
ACCEPT (12, 36) WS-ESTADO.
ACCEPT (13, 38) DDD.
ACCEPT (13, 41) NUMERO-TEL.
ACCEPT (14, 33) WS-CPF.
ACCEPT (15, 32) WS-RG.

WRITE REG-ALUNO.

040-FIM.
CLOSE ALUNO.

030-EXIT.
EXIT.

Desta forma não sobrepõe o arquivo fazendo com que você consiga incluir vários registros e ao mesmo tempo faz a verificação do status do arquivo.

E sim, já está quase podendo arrumar um emprego em bancos, financeiras e grandes empresas onde uctilizam os mainframes e a COBOL.

Em qual curso e escola você está estudando COBOL?

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Olá Mandinha18,

Você fez a verificação logo no começo do tópico, mas resolveu tirá-la. Outro detalhe é, do jeito que está a abertura na inclusão, toda vez que você for fazer uma uma inclusão de registro você está abrindo um novo arquivo por cima do outro que já existia perdendo dados desta forma.

Uctilize a instrução EXTEND na abertura do arquivo, na inclusão. Vide:

   

**************************************************************.
030-INCLUSAO SECTION.
**************************************************************.
030-INICIO.

[COLOR=red]OPEN EXTEND ALUNO[/COLOR]
[COLOR=red] IF FS-STATUS NOT = "00"[/COLOR]
[COLOR=red] CLOSE ALUNO[/COLOR]
[COLOR=red] OPEN OUTPUT ALUNO.[/COLOR]
DISPLAY TELA-INCLUSAO.

ACCEPT (07, 34) WS-NOME.
ACCEPT (08, 48) DIA-NASCIMENTO.
ACCEPT (08, 51) MES-NASCIMENTO.
ACCEPT (08, 54) ANO-NASCIMENTO.
ACCEPT (09, 38) LOUGRADOURO.
ACCEPT (10, 44) NUMERO.
ACCEPT (11, 36) WS-CIDADE.
ACCEPT (12, 36) WS-ESTADO.
ACCEPT (13, 38) DDD.
ACCEPT (13, 41) NUMERO-TEL.
ACCEPT (14, 33) WS-CPF.
ACCEPT (15, 32) WS-RG.

WRITE REG-ALUNO.

040-FIM.
CLOSE ALUNO.

030-EXIT.
EXIT.

Desta forma não sobrepõe o arquivo fazendo com que você consiga incluir vários registros e ao mesmo tempo faz a verificação do status do arquivo.

E sim, já está quase podendo arrumar um emprego em bancos, financeiras e grandes empresas onde uctilizam os mainframes e a COBOL.

Em qual curso e escola você está estudando COBOL?

Abs.

Oi, eu estudo no Expoente, curso Sistemas de Informação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, eu estudo no Expoente, curso Sistemas de Informação.

Oi Mandinha18,

Legal. Os alunos tiveram muita dificuldade em aprender COBOL?

Você alterou o code, compilou e executou para ver a diferença? Pelo que eu percebí vocês estão usando o compilador ANS85 COBOL 2.1, é isso?

Edit: -Ficou legal a cor azul, é mais suave e cansa menos os olhos. ;)

Abs.

----------------------------------------

A título informativo, até para os demais membros do fórum, a gigante IBM fez várias parcerias com escolas e universidades para retomarem nas grades aulas de COBOL por falta de programadores no mercado. Para quem tiver interesse, COBOL + DB2 ou SQL, estão pagando muito bem no mercado.

Editado por Lord Enigm@
Sobre a cor.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Oi Mandinha18,

Legal. Os alunos tiveram muita dificuldade em aprender COBOL?

Você alterou o code, compilou e executou para ver a diferença? Pelo que eu percebí vocês estão usando o compilador ANS85 COBOL 2.1, é isso?

Edit: -Ficou legal a cor azul, é mais suave e cansa menos os olhos. ;)

Abs.

----------------------------------------

A título informativo, até para os demais membros do fórum, a gigante IBM fez várias parcerias com escolas e universidades para retomarem nas grades aulas de COBOL por falta de programadores no mercado. Para quem tiver interesse, COBOL + DB2 ou SQL, estão pagando muito bem no mercado.

Oie. :)

Não tiveram muita dificuldade, é fácil de usar o cobol mais é que os outros alunos da minha sala mexem com isso, eu sou a unica que nunca tinha visto cobol antes.

Meu programa não aceito o código, não sei porque. É a gente usa esse mesmo.

Fico bem melhor mesmo nessa cor, antes tinha que forçava muito os olhos.

Amanha eu faço a defesa desse trabalho acho que vou me dar bem. Eu soube que entendi esse programa porque ajudei mais dois colegas em algumas partes do trabalho deles.:lol:

Abs ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mandinha18, Faça suas novas dúvidas como você mencionou na MP, caso contrário encerrarei o tópico.

Se quiser conversar casualmente, se adicionem no skype ou usem a MP para isso.

Att,

Dif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu programa não aceito o código, não sei porque.

Oi Mandinha18,

Aqui compilou e rodou tranquilo. Verifique se você finalizou a condição IF correctamente e se não existem linhas fora das margens.

Em qual linha e qual erro o compilador mostrou?

Boa sorte na defesa do trabalho.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui compilou e rodou tranquilo. Verifique se você finalizou a condição IF corretamente e se não existem linhas fora das margens.

Em qual linha e qual erro o compilador mostrou?

Boa sorte na defesa do trabalho.

Abs.

Oie, Lord Enigm@

Da erro na linha do OPEN EXTEND, eu conferi todas a linhas e nenhuma estava fora da margem, acho muito estranho não ter compilado direito, mais td bem já entreguei o trabalho mesmo, valeu por td ajuda.

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×