Садржај
3 Променљиве, подаци, типови
3.5 Текстуални подаци (стрингови, ниске)
4 Гранања
4.7 Гранања - разни задаци
5 Петље
5.1 Врсте петљи
5.2 Наредбе break и continue
6 Статички методи
6.4 Корист од метода
7 Низови
7.2 Низови - вежбање
8 Матрице
9 Кориснички дефинисани типови
10 Фајлови

Читање и писање текстуалних фајлова - вежбање

На странама 220-223 приручника Увод у програмирање у програмском језику C# налазе се задаци на којима можете да вежбате употребу фајлова.

У наставку нудимо још неколико задатака, сличних онима из приручника.

Напомена: речи ученик, корисник и сл. у задацима се односе на особе оба пола.

Задатак - Пријаве

Фајл prijave.txt садржи податке о пријављивању и одјављивању за све кориснике и све рачунаре једне школе. Сваки ред фајла је облика sat,minut,sekund,ime,racunar,spec, при чему део sat,minut,sekund представља време пријављивања или одјављивања, ime представља корисничко име корисника, racunar је ознака рачунара, а spec је један од текстова prijava или odjava.

Написати програм који са тастатуре учитава почетно и завршно време неког интервала (у сатима, минутима и секундама) и ознаку рачунара, а затим користећи фајл prijave.txt исписује на екран корисничка имена свих корисника који су у том периоду били пријављени на задати рачунар.

На пример, ако фајл изгледа овако

8,32,17,19_1_mpetrovic,kabinet2_r07,prijava
9,20,12,19_2_dzivkovic,kabinet3_r06,prijava
9,20,36,19_1_mpetrovic,kabinet2_r07,odjava
10,4,55,19_2_dzivkovic,kabinet3_r06,odjava
12,27,17,19_4_akojic,kabinet2_r07,prijava
12,31,49,19_3_ujankovic,kabinet2_r07,prijava
12,32,26,19_4_akojic,kabinet2_r07,odjava
12,53,27,19_3_ujankovic,kabinet2_r07,odjava

и ако се унесу времена 9 0 0 и 12 30 0 и ознака рачунара kabinet2_r07, онда програм треба да испише:

19_1_mpetrovic
19_4_akojic

Задатак - Рођендан

Фајл rodjendan.txt садржи редове облика ime,mesec,dan, где је ime име ученика, а mesec и dan представљају датум рођења ученика.

Фајл godine.txt садржи редове облика ime,godine, где је ime име ученика, а godine (цео) број његових година. Фајлови rodjendan.txt и godine.txt садрже иста имена у истом редоследу.

Написати програм који учитава са тастатуре датум последње корекције фајла godine.txt и данашњи датум, а затим формира нови фајл godine1.txt, са исправљеним бројем година оних ученика којима је у међувремену био рођендан (након последње корекције, а најкасније данас). Подразумева се да је од последње корекције прошло мање од годину дана.

У напреднијој верзији, програм може сам да очита датум последње измене фајла godine.txt и текући датум, да преименује постојећи фајл godine.txt у godine.bak, а нови фајл да сачува под именом godine.txt (због једноставнијег тестирања, мењање имена фајла је најбоље додати тек када све друго проради).

На пример, ако је фајл rodjendan.txt последњи пут ажуриран дана 21.11. и изгледа овако

Ana,3,11
Luka,5,23
Milica,1,29
Mirko,12,7

а фајл godine.txt је

Ana,16
Luka,16
Milica,15
Mirko,15

онда, претпоставивиши да је данас 26.12, нови фајл godine.txt треба да буде

Ana,16
Luka,16
Milica,15
Mirko,16

Задатак - Сређивање текста

Написати програм који преписује обичан текст из једног фајла у други, поправљајући размаке по следећим правилима:

  • Размак се пише пре отворене и после затворене заграде, а не пише се после отворене, нити пре затворене заграде (на пример, овако).

  • Пре знакова интерпункције не пише се размак, чак ни ако интерпункцији претходи затворена заграда (као овде).

  • После знакова интерпункције се пише један размак. На пример, после тачке у претходној реченици, или после запете у овој.

  • Никада се не пишу два или више узастопних размака.

Интерпункцијом ћемо сматрати све симболе који нису слова или заграде.

На пример, за улазни фајл

Ово  је пример неуредног текста !   Размаци око тачака , узвичника ,
запета , а могуће и других знакова ( мада их овде нема ) нису уредни.

треба добити излазни фајл

Ово је пример неуредног текста! Размаци око тачака, узвичника,
запета, а могуће и других знакова (мада их овде нема) нису уредни.

Задатак - Спајање табела

Успех једног одељења на контролној вежби записује се у текстуалном фајлу у CSV формату (CSV - comma separated values, вредности раздвојене запетом). Фајл нема заглавља, а подаци о сваком ученику су у по једном реду фајла. Подаци о једном ученику садрже редом корисничко име ученика и број поена на контролној вежби, раздвојене запетом (корисничко име је низ симбола у коме се појављују слова, цифре и подвлака).

Написати програм који учитава улазне фајлове kontrolna1.csv и kontrolna2.csv, који редом представљају успех истог одељења на првој и другој вежби, а исписује фајл kontrolne.csv који садржи податке са обе контролне вежбе. Сваки ред у излазном фајлу треба да садржи име и два броја, раздвојене по једном запетом (без размака). У случају да ученик није присутвовао једној контролној вежби, на одговарајућем месту треба да стоји знак -. Подаци у улазним фајловима јесу, а у излазним треба да буду сортирани абецедно по корисничким именима ученика.

На пример, за улазне фајлове

ucenik19_1_03,58
ucenik19_1_04,97
ucenik19_1_05,15

и

ucenik19_1_03,73
ucenik19_1_05,86
ucenik19_1_06,69

треба добити излазни фајл

ucenik19_1_03,58,73
ucenik19_1_04,97,-
ucenik19_1_05,15,86
ucenik19_1_06,-,69
(Created using Swinx, RunestoneComponents and PetljaDoc)
© 2022 Petlja
A- A+