Dynamisch menu. Vragen voor het examen

Menu-ontwerper

Om menu's te maken en te wijzigen tijdens de ontwikkeling van applicaties in Delphi-omgeving Menu Designer is bedoeld. U kunt de Menu Designer starten met de opdracht Menu Designer. contextmenu component HoofdMenu of PopupMenu, evenals gebruik Dubbelklik muis op dezelfde componenten. Eerst moet een van deze componenten aan het formulier worden toegevoegd. Bedenk dat de componenten MainMenu en PopupMenu zich op de standaardpagina van het componentenpalet bevinden.

De menubouwer is vergelijkbaar met teksteditor en biedt de mogelijkheid om heel eenvoudig en gemakkelijk een menu van welk type dan ook te ontwerpen. Het menu ziet er tijdens het bouwen hetzelfde uit als wanneer de applicatie actief is. Hoe het menu eruitziet als het is ontworpen met behulp van de Menu Builder, wordt weergegeven in Afb. 7.4.Gebruik bij het werken met de Menu Constructor de opdrachten van het contextmenu (Fig. 7.4), dat wordt opgeroepen door te klikken op klik met de rechtermuisknop muis wanneer u de aanwijzer in het Menu Designer-gebied plaatst. Met hun hulp kunt u acties uitvoeren zoals het toevoegen (Invoegen) en verwijderen (Verwijderen) van een menu-item, het maken van een submenu (Submenu maken), het selecteren van een menu (Menu selecteren).

Bij het ontwerpen van een menu kunt u de muisaanwijzer ook gebruiken om menu-items en submenu's te verplaatsen met behulp van drag-and-drop-technologie. In combinatie met de Menu Builder kunt u met de Object Inspector de eigenschappen van afzonderlijke menu-items beheren. In het bijzonder wordt de naam van een menu-item gespecificeerd door de gewenste waarde toe te wijzen aan de caption-eigenschap ervan.

Met behulp van de Constructor worden menu's gemaakt en geconfigureerd bij het maken van een applicatie. Bovendien kunnen menu's dynamisch worden gemaakt of gewijzigd terwijl de applicatie actief is. Het is bijvoorbeeld mogelijk:

  • maak een nieuw menu van welk type dan ook of verwijder het;
  • individuele items blokkeren of deblokkeren;
  • een menu-item zichtbaar of onzichtbaar maken;
  • een menu-item toevoegen of verwijderen;
  • verander de naam van het item;
  • een item aan- of uitvinken;
  • schakel het formulier van het ene hoofdmenu naar het andere.

Deze mogelijkheden worden geboden door de eigenschappen van menu-items op de vereiste waarden in te stellen en de bijbehorende methoden aan te roepen.

Om menu-items toe te voegen, gebruikt u de methoden Toevoegen en invoegen; om menu-items te verwijderen gebruikt u de methode Verwijderen.

De procedure Toevoegen (item: TMenuitem) voegt het item gespecificeerd door item toe aan het einde van het submenu dat deze methode aanroept. Als het submenu niet bestond, wordt het aangemaakt.

Voorbeeld. Een menu-item toevoegen.

procedure Forml.mnuItemAddClick(Afzender:TSender);

var NieuwItem: TMenuitem;

NewItem:= TMenuitem.Create(Zelf);

NieuwItem.Caption:= " Nieuw element";

mnuFile.Add(NieuwItem);

end;Er wordt een nieuw item toegevoegd aan het einde van de lijst met opdrachten in het menu Bestand. Het toegevoegde item heeft de titel Nieuw item. Eerder nieuw item gemaakt door de Create-constructor.

De procedure Invoegen (Index: Integer; Item: TMenuItem) voegt, in tegenstelling tot de vorige methode, een nieuw menu-item toe aan opgegeven positie. De indexparameter specificeert de positie in de menu-itemarray waarop het nieuwe item wordt ingevoegd. Als de waarde van de indexparameter buiten het toegestane bereik ligt, bijvoorbeeld groter dan het aantal subelementen van het menu-item dat wordt gewijzigd, treedt er een uitzondering op.

De procedure Verwijderen (index: geheel getal) verwijdert het opgegeven menu-item. Als het item dat wordt verwijderd subitems bevat, worden deze ook verwijderd.

Voorbeeld. Een menu-item verwijderen.

procedure Forml.mnuItemDeleteClick(Afzender:TSender);

if mnuFile.Items.Caption = "Tweede item"

vervolgens mnuFile.Delete(2); einde;

De procedure verwijdert een item uit het submenu Bestand. Het te verwijderen item heeft de titel Tweede item en staat op de tweede positie. Er wordt vooraf gecontroleerd of het item met de gewenste naam daadwerkelijk wordt verwijderd.

Een formulier kan meer dan één hoofdmenu hebben. Dit wordt bijvoorbeeld gebruikt in het geval dat een van deze headers bevat de Engelse taal, en de andere is in het Russisch. Om deze functie te implementeren, moet u twee MainMenu-componenten op het formulier plaatsen en de bijbehorende menu's voorbereiden. Hierna is het bij het uitvoeren van het programma mogelijk om elk van deze menu's aan het formulier te koppelen. Om het hoofdmenu aan het formulier te koppelen, gebruikt u de menu-eigenschap van het formulier.

Voorbeeld. Schakelen tussen twee hoofdmenu's.

if Forml.Menu = EngelsMenu

dan Forml.Menu:= RussischMenu else Forml.Menu:= EngelsMenu;

De menu's heten EnglishMenu en RussianMenu. De code die de menuwisseling uitvoert, kan worden opgenomen in de overeenkomstige handler.

Bedenk dat Menu een van de formuliereigenschappen is die naar het hoofdmenu verwijst momenteel is actief.

Vragen voor het examen

bijgewerkt:17.0 8.1 2

1. Concept, belangrijkste functies, soorten besturingssystemen.

2. Functies besturingssysteem.

3. Bedrijfsomgeving.

5. Machine-afhankelijke eigenschappen van besturingssystemen.

6. Wat is het doel bestandssysteem Besturingssysteem?

7. Wat is een bestand? Welke bestandsstructuren worden door verschillende besturingssystemen ondersteund?

8. Wat is een directory (directories)? Waar worden catalogi voor gebruikt?

9. Welke bestandsbewerkingen worden door besturingssystemen aangeboden?

10. Beschrijf de commando's van het MS DOS-besturingssysteem.

11. Beschrijf de shell-interface van Norton Commander OS.

12. Beschrijf de stijl van werken met behulp van de Windows-shell.

13. In welke opzichten is Windows 95 superieur aan Windows 3.11?

14. Onderhoud van besturingssystemen.

15. Welke functies voert het Startmenu uit? Zoekopdracht?

16. Hoe te bellen dynamische menukaart, en wat zijn de mogelijkheden ervan?

17. Welke evenementen zijn in ontwikkeling? technische basis computers mijlpalen werden in de geschiedenis van besturingssystemen?

18. Waaruit bestond het? fundamenteel verschil eerste monitoren batchverwerking van systeemverwerkingsprogramma's die toen al bestonden? vertalers, laders, linkers, procedurebibliotheken?

19. Machine-onafhankelijke eigenschappen van besturingssystemen.

20. Hoe is de houding ten opzichte van het concept van multiprogrammering in de geschiedenis van het besturingssysteem geëvolueerd?

21. Beveiliging en fouttolerantie van besturingssystemen.

22. Wat verklaart de speciale plaats van het UNIX-besturingssysteem in de geschiedenis van besturingssystemen?

23. Beschrijf de geschiedenis van netwerkbesturingssystemen.

24. Wat zijn dat? moderne tendensen OS-ontwikkeling?

25. Leg de definitie uit van een besturingssysteem als een uitgebreide machine.

26. Volgens de definitie van een besturingssysteem zijn de belangrijkste functies ervan het bieden van gemak aan de gebruiker doeltreffend management computerbronnen. Welke van deze twee functies zouden de multiprogramma-besturingssystemen van het IBM/360-tijdperk moeten domineren? En in het eerste besturingssysteem voor personal computers?

27. Waar zit het verschil in virtuele machines geleverd door het besturingssysteem voor een eenvoudige gebruiker en applicatieprogrammeur?

28. Vergelijk de applicatieprogrammeurinterface met het besturingssysteem en de systeemprogrammeurinterface met echte hardware. Hoe zit het met de verscheidenheid en kracht van de interfacefuncties die voor elk van hen beschikbaar zijn?

29. Noem de abstract geformuleerde OS-taken voor het beheren van elk type bron. Specificeer deze taken met betrekking tot de processor, het geheugen en externe apparaten.

30. Voeg de ontbrekende definities in: ?De gebruiker... OS hoeft niet te weten op welke computer in het netwerk de bestanden staan ​​waarmee hij werkt, maar de gebruiker... OS heeft deze informatie meestal nodig?.

31. Standaard programma's besturingssysteem.

32. Wat is het minimum functionaliteit moet het aan het lokale besturingssysteem worden toegevoegd, zodat het een netwerkbesturingssysteem wordt?

33. Noem de belangrijkste netwerkdiensten. Welke daarvan zijn meestal in het besturingssysteem ingebouwd?

34. Ondersteuning voor applicaties van andere besturingssystemen, manieren om apparaatondersteuning te organiseren, hardwarestuurprogramma's, concept, functies en gebruiksmethoden software-interface besturingssysteem.

35. Leg de betekenis uit van de volgende termen met betrekking tot netwerkbesturingssystemen: “service”, “server”, “client”, “service”, “shell”, “service”, “redirector”. Welke van hen worden als synoniemen gebruikt?

36. Kan een netwerkshell werken op een netwerkbesturingssysteem?

37. In welke gevallen kan het nuttig zijn om meerdere server- (client)onderdelen van bestandsservices tegelijk te hebben?

38. Soorten gebruikersomgeving.

39. Kan een dedicated server verzoeken doen aan clientstationbronnen?

40. Geef voorbeelden van peer-to-peer besturingssystemen en dedicated serverbesturingssystemen.

41. Welke van de volgende termen zijn synoniemen? O bevoorrechte modus;

Over de beveiligde modus; O supervisormodus; Over gebruikersmodus; OVER echte modus; Over de kernelmodus.

42. Is het mogelijk door te analyseren binaire code programma concluderen dat het onmogelijk is om het in de gebruikersmodus uit te voeren?

43. Wat zijn de verschillen in processorwerking in bevoorrechte en gebruikersmodi?

44. Idealiter vereist een microkernel-OS-architectuur dat alleen die OS-componenten die niet in de gebruikersmodus kunnen worden uitgevoerd, in de microkernel worden geplaatst. Wat dwingt ontwikkelaars van besturingssystemen om af te stappen van dit principe en de kernel uit te breiden door er functies in te verplaatsen die als serverprocessen kunnen worden geïmplementeerd?

45. Welke fasen omvat de ontwikkeling van een mobiele besturingssysteemversie voor een nieuw hardwareplatform?

46.Beschrijf hoe applicaties omgaan met een besturingssysteem dat een microkernelarchitectuur heeft.

47. Wat zijn de verschillende stadia van het uitvoeren van een systeemaanroep in een microkernel-besturingssysteem en een besturingssysteem met een monolithische kernel?

48. Kan een programma worden geëmuleerd in een vreemde taal? processor, sneller uitvoeren dan aan? Beste??

49. Bestandsstructuur MS-DOS.

50. Soorten MS DOS-gebruikersinterface.

51. Concept, functies en methoden voor het gebruik van de software-interface van het MS DOS-besturingssysteem.

52. Controle- en onderhoudsfaciliteiten. Installatie en onderhoud van besturingssystemen.

Je hebt waarschijnlijk op sommige websites dynamische en geanimeerde menu's gezien die veranderen terwijl je naar beneden scrollt. Door het hoofdnavigatiemenu te minimaliseren, laat u meer ruimte over voor inhoud. In deze tutorial leggen we uit hoe je zelf een menu kunt maken met HTML5, CSS3 en een beetje jQuery.

Als u speciale aandacht wilt besteden aan de inhoud van de site en een grotere en indrukwekkendere navigatie wilt creëren wanneer een gebruiker de website voor het eerst bezoekt, dan is dit type menu perfect voor u. U kunt uw merk of logo perfect onder de aandacht brengen en na een eerste blik op de site enkele elementen beperken, zodat de gebruiker zich op uw inhoud kan concentreren.

Er zijn verschillende manieren om dit te doen. In deze zelfstudie leggen we uit hoe u een vast menu over de volledige breedte kunt maken dat samen met uw logo in hoogte wordt aangepast, waardoor een miniatuurversie van het origineel ontstaat. Indien gewenst kunt u het logo ook vervangen door een andere optie, zoals initialen of een pictogram, maar houd er rekening mee dat consistentie hier erg belangrijk is, zodat de gebruiker begrijpt hoe het element is veranderd en dat het hoofddoel nog steeds sitenavigatie is.

Creatie basis structuur in HTML5

We beginnen met het maken van de basis-HTML-code die we nodig hebben. Om te beginnen houden we vast aan een heel eenvoudige HTML5-structuur.

Nu onze eerste HTML-code is geschreven, voegen we de code voor het menu toe, evenals enkele andere details voor de header van ons HTML-bestand.

Een geanimeerd menu maken | WebDesignMagazine

  • thuis
  • Lidwoord
  • Dit is een hele leuke site!

Scroll naar beneden en zie hoe het menu verandert

Alle! We zijn aangekomen!

In onze: We hebben een metatag voor de auteur toegevoegd om de maker van het document aan te geven, waarna we de beroemde "CSS-reset" van Eric Meyer hebben opgenomen, waarmee bijna elk element in het HTML-bestand wordt gereset, waardoor u een schoner en eenvoudiger document krijgt om mee te werken met. En aangezien we JQuery later zullen gebruiken, zullen we dit op de laatste regel van ons hoofdelement importeren via het JQuery CDN.

In onze tag hebben we het standaard HTML5-element gebruikt. Onze versie beslaat de volledige breedte van de pagina en is verantwoordelijk voor veranderingen tussen grote en kleine versies van het menu. We geven de onze een klasse met de naam 'groot', zodat we enkele specifieke eigenschappen in de CSS kunnen wijzigen om ons menu in een kleinere versie te veranderen. Dit is ons containermenu dat een afbeelding van ons websitelogo bevat en een eenvoudige, ongeordende lijst met menu's met drie links.

Omdat we hier geen inhoud hebben, wordt dit gebruikt om de pagina uit te rekken en het scrollen te forceren.

En dat is alles voor het HTML-gedeelte. Nu moeten we de elementen opmaken met behulp van CSS en het menu dynamisch maken.

Styling van menu's en pagina's

/* Importeer het Amaranth-lettertype */ @import-URL(//fonts.googleapis.com/css?family=Amaranth); /* Hoofdstijl */ body( achtergrondkleur: #ebebeb; ) ul( float: rechts; ) li( weergave: inline; float: links;) img.logo(float: links;) /* Menugrootte en centrering * / nav( breedte: 960px; marge: 0 auto;)

Een klein beetje van deze CSS zal ons menu in het midden 960px breed maken, terwijl ons menu aan de rechterkant en het logo aan de linkerkant worden georganiseerd. We importeren ook het Amaranth-lettertype van Google Web Fonts om te gebruiken voor onze tekst op de pagina.

Section.stretch( zwevend: links; hoogte: 1500px; breedte: 100%; ) section.stretch p( lettertypefamilie: "Amaranth", schreefloos; lettergrootte: 30px; kleur: #969696; tekstuitlijning: midden; positie: relatief; marge-boven: 250px; section.stretch p.bottom(boven: 100%; )

Hier maken we eenvoudigweg de pagina uitgerekt om het scrollen aan te moedigen, en positioneren we de tekst om het begin en einde van de inhoud aan te geven.

Header( achtergrond: #C7C7C7; rand-onder: 1px effen #aaaaaa; zwevend: links; breedte: 100%; positie: vast; z-index: 10; ) header a( kleur: #969696; tekstdecoratie: geen; lettertypefamilie: "Amaranth", schreefloos; teksttransformatie: hoofdletter; lettergrootte: 1em; header a.active, header a:hover( color: #3d3d3d; ) header li( margin-right: 30px; ) /* Afmetingen voor een groter menu */ header.large( hoogte: 120px; ) header.large img( breedte: 489px; hoogte: 113px; ) header.large li( margin-top: 45px; )

Hier voltooien we de basisstijl van onze header. zal dienen als onze menucontainer. Het zal ons element bevatten en zal dienen als het element waarin we de achtergrondkleur, menuhoogte, linkmenustijl en meer definiëren. Het past zich aan de schermbreedte aan met breedte-eigenschappen: 100% en blijft vast over andere elementen op de website. Het is belangrijk om te onthouden dat u de z-index zo instelt dat het element de rest van de pagina overlapt, evenals de position:fixed​ om de div bovenaan te verankeren, zodat deze op dezelfde positie blijft terwijl de gebruiker scrolt via de website. Zoals u kunt zien, hebben we naast het instellen van stijlen voor de headers ook enkele specifieke stijlen voor de klasse “large” ingesteld met behulp van header.large. De beginstatus van ons menu zal groot zijn, en daarom definiëren we hier alleen de noodzakelijke stijlen om het er zo uit te laten zien als we willen wanneer de gebruiker de pagina voor het eerst bezoekt.

Dynamisch aanpassen van het menu

Ons menu is klaar en gestyled, maar we willen er nog steeds aan werken om het minimaal te houden. Om deze "status" te creëren, zullen we een nieuwe klasse in CSS creëren met de naam "small", die verantwoordelijk zal zijn voor het wijzigen van de eigenschappen die we moeten aanpassen. We hebben al een groot menu gedefinieerd, dus nu moeten we alleen ons menu korter maken, onze afbeelding proportioneel kleiner maken en de (marge bovenaan) die we gebruiken in onze elementen

  • , die ook moeten worden verkleind zodat ze verticaal gecentreerd blijven met de nieuwe menuhoogte:

    /* Maten voor het kleinere menu */ header.small( hoogte: 50px; ) header.small img( breedte: 287px; hoogte: 69px; margin-top: -10px; ) header.small li( margin-top: 17px; )

    Zoals u kunt zien, zijn deze stijlen vrijwel identiek aan die in het grotere menu, we hebben zojuist de klasse ‘groot’ gewijzigd in ‘klein’ en de waarden die we gebruikten gewijzigd in kleinere. We gebruiken negatieve margebovenkanten op de afbeelding om deze in de container te centraliseren, omdat de afbeelding een dunne schaduw heeft en groter is dan het schrift om er ruimte voor te bieden. Nu hebben we alle benodigde stijlen om het formaatwijzigingsmenu aan te passen, en als u dit probeert te wijzigen in uw , zult u in de browser zien dat het menu kleiner wordt. Maar we hebben het nodig dat het dynamisch is.

    Een menuklasse wijzigen met jQuery

    Nu al onze styling aanwezig is, hoeven we alleen maar wat JavaScript toe te voegen om te schakelen tussen de "grote" en "kleine" klassen. Omdat we dit willen veranderen op basis van het scrollen door de gebruiker, zullen we de functie .ScrollTop() in jQuery gebruiken. Met deze functie kunnen we de scrollpositie in pixels ophalen of instellen. De scrollpositie is het aantal pixels dat al in het browservenster is gescrolld. In dit geval hoeven we alleen maar te weten hoeveel pixels de gebruiker heeft gescrolld, zodat we onze code kunnen aanroepen en tussen klassen kunnen schakelen:

    $(document).on("scroll",function())( if($(document).scrollTop()>100)( $("header").removeClass("large").addClass("small") ; ) else( $("header").removeClass("klein").addClass("groot"); ) ));

    Als de gebruiker meer dan 100 pixels heeft gescrolld, wordt de klasse "grote" die we hebben gemaakt verwijderd en wordt onze nieuwe klasse "klein" toegevoegd. Op deze manier wordt het formaat van het menu aangepast zoals we eerder in de CSS hebben gedefinieerd. Probeer het eens, het zou nu moeten werken, maar het is je misschien opgevallen dat de overgangen tussen klassen erg abrupt lijken.

    CSS-overgangen voor menuanimatie

    Om soepel tussen klassen in ons menu te kunnen schakelen, zullen we CSS-overgangen gebruiken. Gebruik dit stukje code gewoon naast de rest van uw CSS.

    Header,nav, a, img, li( overgang: alle 1s; -moz-overgang: alle 1s; /* Firefox 4 */ -webkit-overgang: alle 1s; /* Safari en Chrome */ -o-overgang: alles 1s; /* Opera */ )

    Hier hebben we overgangen voor alle CSS-eigenschappen gedefinieerd. En

  • elementen, eigenlijk alle elementen die we veranderen. Deze code animeert de veranderingen tussen beide klassen met CSS-overgangen binnen 1 seconde. Controleer nu, het resultaat zou heel glad moeten zijn.

    Niet alle sjablonen bieden de mogelijkheid om een ​​ingebouwd dynamisch menu te gebruiken, wanneer u met de muiscursor over een menu-item beweegt, worden verborgen submenu's onthuld met een vervolgkeuzelijst. Statische menu's kunnen uiteraard zelfvoorzienend zijn, op voorwaarde dat de structuur van uw site uit slechts enkele secties bestaat. Maar dit is alleen typisch voor visitekaartjesites. In de regel heeft een zichzelf respecterende website een tamelijk vertakte structuur, wat op zichzelf dwingt om zijn toevlucht te nemen tot vervolgkeuzemenu's, aangezien de breedte of hoogte van een webpagina niet oneindig is en niet alle items kan plaatsen. in één rij (bij een horizontale menupositie) of in één kolom (bij een verticaal menu). Bovendien is opgemerkt dat gebruikers menu's met meer dan 5-10 items niet respecteren; het wordt vermoeiend voor hen om de eindeloze lijst met menu-items op de site te lezen, ze verlaten deze zonder zelfs maar het laatste item te bereiken; misschien zelfs wel eens wat ze zochten op uw site. Daarom is de behoefte aan een dynamisch menu zeer serieus gemotiveerd. Er is een speciale extensie die in uw Joomla wordt geïnstalleerd en waarmee u naar eigen inzicht een menu kunt maken en ontwerpen in de ontwerpmodus. Maar zelfs als u geen dynamisch menu nodig heeft, is een statisch menu voldoende voor u, of heeft de sitesjabloon die u kiest er al een, haast u niet om dit onderwerp te negeren. In ieder geval kunt u hierdoor de specifieke kenmerken van webapplicaties beter begrijpen als u zelf in het Swmenufree-programma werkt.

    Com_swmenufree5.2_J1.5

    Dit is de naam van de plug-in die wij hier downloaden en installeren op een manier die bij ons al bekend is op onze website. Selecteer na de installatie “SwMenuFree” in het menu “Componenten” en ga naar het configuratiescherm van dit programma. We hebben een venster met veel instellingen en tabbladen “Moduleopties”, “Afmetingen en positie”, “Kleur en achtergrond”, “Lettertypen en inspringingen”, “Randen en effecten”. U hoeft zich niet bijzonder te laten intimideren door de overvloed aan aanpasbare parameters, maar laten we meteen een reservering maken: het werk dat voor ons ligt, is creatief.

    In de regel "Modulenaam" voeren we onmiddellijk de naam in van het menu dat we gaan maken. Deze naam is belangrijk voor het systeem, en niet voor ons, omdat u na het aanmaken van een menu met deze naam het menu van uw site nog steeds niet in de lijst ziet. Feit is dat we niet als zodanig een nieuw menu maken, maar de inhoud van een van de reeds gemaakte menu's omzetten in een nieuwe, dynamische versie. Voor de duidelijkheid hebben we de naam "Dynamisch Menu" gebruikt.

    Selecteer in de regel "Menubron" "Trans Menu", aangezien deze optie, van alle drie mogelijke, het meest optimaal is voor onze sjabloon. Degenen die het niet geloven, laten ze de rest proberen om uiteindelijk met onze versie akkoord te gaan.

    Met de regel "Menubron" kunnen we uit de lijst het reeds bestaande sitemenu selecteren dat we in een dynamische vorm willen presenteren. Eigenlijk is de keuze niet geweldig, omdat we nog steeds maar één menu hebben: Hoofd, met de systeemnaam hoofdmenu. Wij kiezen hem uit deze lijst.

    In de regel “Ouder” laten we de waarde TOP staan. Dit betekent dat ons menu geen onderliggende menutak is, maar zelf als ouder fungeert en andere menutakken kan 'spawnen'.

    Laten we naar het volgende instellingenblok gaan – “Opties voor stijlbladen”. Selecteer in de regel "Tabel laden" de optie "Stijl rechtstreeks in de pagina implementeren", hierdoor kan ons menu precies die ontwerpstijlen gebruiken die we er zelf voor zullen instellen, waarbij de stijlen worden genegeerd die door de sitesjabloon worden opgelegd.

    We schrijven niets in de regel "Moduleklasseachtervoegsel".

    We negeren het volgende blok “Caching-instellingen”.

    Blokkeer “Algemene moduleparameters”. Plaats de selectievakjes zoals weergegeven in de afbeelding.

    Blokkeer "Plaatsing en toegang". In de regel "Moduleplaatsing" plaatsen we header1 (deze positie van het horizontale menu is voorzien voor deze sjabloon. Trouwens, we hebben daar momenteel een sitezoekmodule, dus je moet deze eerst naar een andere positie overschakelen - banner) .

    Andere instellingen op dit tabblad raken we niet aan, hoewel we maar één menu op de site hebben, zijn ze niet relevant en zijn de standaardwaarden die daarin zijn ingesteld voor ons behoorlijk bevredigend. Als u echter wilt dat uw hoofdmenu niet op alle pagina's van de site wordt weergegeven, maar slechts op een paar, selecteert u degene die u nodig heeft in het blok "Menumodule weergeven op pagina's".

    Ga naar het volgende tabblad - "Afmetingen en positie". Hier kunnen we de hoogte en breedte van menu- en submenu-elementen configureren, evenals de manier waarop ze op de pagina worden gepositioneerd.

    Blok “Menupositie en oriëntatie”. Zet links in de regel "Menu - Uitlijning:", omdat Het uitlijnen van menutekst naar links wordt als optimaal beschouwd. Selecteer in de regel “Menu / Submenu - Oriëntatie:” horizontaal/omlaag/rechts (horizontaal-omlaag-rechts). Vergeet niet na elke wijziging die u in de instellingen aanbrengt op de knop ‘Bekijken’ te klikken. Hierna ziet u uw menu in een apart venster waarin het functioneert en eruitziet zoals het er op de pagina uit zal zien na het opslaan van de resultaten. Nadat u het heeft bewonderd, kunt u dit venster sluiten.

    Blokkeer “Menu-elementformaten”. Hier zijn alle waarden nul, wat betekent dat de menu-items worden gedimensioneerd op basis van de grootte van de tekst die erin staat. Voor ons is dit een hele goede optie, omdat... we maken een horizontaal menu en daarin mogen, in tegenstelling tot een verticaal menu, niet alle elementen even groot zijn.

    In de blokken “Menu-offsets op het hoogste niveau” en “Submenu-offsets” kunt u de mate van offset van menu-elementen ten opzichte van elkaar instellen. Hoewel daar geen bijzondere objectieve noodzaak voor bestaat.

    Tabblad "Kleur en achtergrond". Dit is waar het plezier begint. Hier moeten we maximale creativiteit tonen door alle elementen van ons menu te ontwerpen in kleuren die in harmonie zijn met de achtergrond van het sitesjabloon. De achtergrond van menu-items kan worden gevuld met kleur en afbeeldingen (denk aan PowerPoint!). Bovendien heeft vullen met een afbeelding een dominante betekenis boven vullen met kleur: als u met beide opties vult, zal de resulterende vulling een afbeelding zijn. Omdat we geen afbeeldingen hebben, slaan we het blok ‘Achtergrondafbeeldingen’ voorlopig over. En in het blok "Achtergrondkleur" beginnen we te werken. Net daaronder bevindt zich een kleurselectiepalet en een hint hoe u dit kunt doen: "Selecteer een kleur in het palet en klik op de selectieknop naast het veld waarop u de geselecteerde kleur wilt toepassen."

    Vergeet niet elke keer de resultaten te bekijken. Kijk zelf welke kleuren u moet kiezen, maar het is nog steeds beter om op de knop "Opslaan" te klikken nadat u deze in een apart venster hebt bekeken en naar de hoofdpagina van de site te gaan (als u met de site in twee tabbladen werkt - de hoofdpagina en het beheerderspaneel - zoals we aanvankelijk suggereerden, dan niet. Het zal moeilijk zijn om naar het volgende browsertabblad te schakelen) om met eigen ogen te zien hoe de geselecteerde kleur overeenkomt met de achtergrond van de sitesjabloon.

    Maar we kunnen niet alle mogelijkheden benutten.

    De menustructuur wijzigen

    Als we eerst naar de hoofdpagina gaan, zien we dat we twee hoofdmenu's hebben: het ene is het nieuwe waar we momenteel aan werken, en het andere is het oude, dat zich aan de rechterkant van de pagina bevindt. Wees niet verbaasd als de menu's niet worden gedupliceerd; een ervan moet worden uitgeschakeld, namelijk de oude, of beter gezegd: de module voor het weergeven ervan moet worden uitgeschakeld. Ga naar "Extensies" - "Modules" en schakel de module "Hoofdmenu" uit door op het groene vinkje in de regel te klikken en dit in een rode cirkel met een wit kruis te veranderen. We gaan naar het tabblad waarin de hoofdpagina geopend is en zien dat er nog maar één menu over is.

    Ten tweede kunnen we het ontwerp van de submenu’s niet aanpassen, omdat we die nog niet hebben. Daarom moeten we de structuur van ons menu opnieuw opbouwen, zodat de hoofdelementen subitems worden.

    Ga hiervoor naar het instellingenmenu: "Menu" - "Hoofdmenu". Hier vindt u een lijst met de belangrijkste menu-items. Laten we er twee als hoofdmenu behouden en de rest naar submenu's verplaatsen. We zullen achtereenvolgens elk van de hoofdmenu-elementen moeten openen die "veroordeeld" zijn tot de rol van submenu en in de regel "Oudermenu-item" klikken op het element waarvan we het submenu maken. De figuur toont al het resultaat van vijf opeenvolgende selecties voor elk element (de voormalige hoofdelementen “Forum”, “Galerij”, “Download”, “Categorie Blog”, “Demonstratie”, waarvan het bovenliggende element voorheen het onzichtbare item “Top” was , zijn “kinderen” geworden » hoofditem “Kansen”).

    Om het mechanisme van deze wijzigingen beter te begrijpen, raad ik aan om na elke wijziging in de status van een menu-item en het opslaan ervan naar de hoofdpagina te gaan, op F5 te drukken en het resultaat te bekijken. Ik denk dat twee of drie keer genoeg zal zijn. Je kunt nog verder gaan en het menu nog ingewikkelder maken, bijvoorbeeld door het subitem ‘Laden’ het bovenliggende item van de laatste twee elementen te maken. Als gevolg hiervan hebben we een hiërarchie op drie niveaus in ons menu.

    Het aantal niveaus dat op deze manier kan worden gecreëerd is niet beperkt, maar het wordt niet aanbevolen om meer dan drie niveaus te creëren.

    Nu keren we terug naar het SwMenuFree-configuratiescherm en passen we de resterende submenu-elementen aan, evenals de letterkleur en randkleur in de overeenkomstige blokken met dezelfde naam op het tabblad "Kleur en achtergrond". Er moet worden verduidelijkt dat de kleur van het menu, het submenu en het lettertype voor twee opties wordt ingesteld: buiten de cursor en wanneer de muiscursor over het subitem (item en de inhoud ervan) beweegt. Deze kleuren moeten natuurlijk anders zijn.

    Tabblad 'Lettertypen en inspringingen'. Hier kunt u het lettertype en de inspringingen selecteren vanaf de rand van de menucel tot aan de tekst van deze cel. Ik raad aan om hier niets te veranderen, behalve de dikte van het lettertype, omdat de gebruikelijke stijl soms samenvloeit met de opvulachtergrond (in het blok "Lettertypedichtheid" selecteert u vetgedrukt).

    Tabblad Randen en effecten. De afbeelding toont onze instellingen.

    Klik op opslaan. De menukaart is klaar. U hoeft niet langer naar het SwMenuFree-configuratiescherm te gaan, tenzij u besluit de ontwerpkleur van het huidige sjabloon te wijzigen of wanneer u het sitesjabloon wijzigt, omdat De menuontwerpinstellingen worden echter niet opgeslagen.

    Maar we hebben nog niet nagedacht over de mogelijkheid om de achtergrond met een patroon te vullen.

    De menuachtergrond vullen met een patroon

    Deze methode is ingewikkelder, maar de ontwerpmogelijkheden zijn onbeperkt. Om afbeeldingen te maken zullen we GIMP gebruiken (ik herinner me dat we het in les 5 gebruikten om een ​​website-logo te maken, of beter gezegd, we probeerden het te maken).

    We moeten een transparante afbeelding van 200 × 200px maken. “Bestand” - “Aanmaken”.

    Dialoogvensterinstellingen zoals in de afbeelding. Neem nu het gereedschap "Rechthoekige selectie" (druk op de R-toets) en teken een selectiekader van 100 pixels breed en 25 pixels hoog op onze transparante afbeelding. In de werkbalk, in de regel "Grootte", ziet u, wanneer u de muis beweegt, veranderende cijfers voor de hoogte en breedte van de gemaakte selectie, afhankelijk van deze waarden, richten we onze muis in de ene of de andere richting tot aan de waarden zijn respectievelijk gelijk aan 100 en 25 pixels. We moeten de resulterende selectie vullen met een donkerbruine kleur met behulp van het gereedschap Platte vulling (Shift+B) en de gewenste kleur in het palet selecteren. Het palet wordt op het scherm weergegeven door op de voorgrondkleurrechthoek in de werkbalk te klikken. (Over het algemeen hebben alle paneelknoppen tooltips; houd de cursor op een belangrijk element van het paneel en er verschijnt onmiddellijk een tooltip).

    In het palet moet u met de cursor op de juiste kleur klikken en akkoord gaan met de keuze. Klik daarna in de selectie en deze wordt gevuld met de geselecteerde kleur.

    Nu moeten we een strook van 3 pixels dik selecteren langs de onderkant van onze vulling. We doen dit omdat we zojuist het eerste gebied hebben geselecteerd, waarbij we ons concentreren op de cijfers in de werkbalk (in de regel "Grootte"). Als u de cursor al hebt losgelaten en de cijfers nog steeds niet hetzelfde zijn, bijvoorbeeld meer of minder dan nodig, verplaatst u de cursor naar de selectierand. Zodra het van vorm verandert, drukt u de linkermuisknop in en sleept u de cursor naar beneden of naar boven. Als we de muis loslaten, zien we dat we op deze manier het selectiegebied hebben vergroot of verkleind. Laten we het opnieuw proberen en het selectiegebied op de gewenste grootte brengen. Vul het met sinaasappel.

    Maak nu de laag gedeeltelijk transparant: menu “Vensters” - “Panelen” - “Lagen”. In het paneel dat verschijnt, zien we de rechthoek van de huidige laag, selecteren deze door te klikken en verplaatsen de schuifregelaar in de lijn "Dekking" zodat de waarde gelijk wordt aan 80. Onze vulling is een beetje transparant geworden. Nu moeten we uit al deze vulling een dunne strook van 25 pixels hoog en 3 pixels breed uitknippen. We nemen het gereedschap “Bijsnijden” en bestrijken, net als voorheen met het selectiegereedschap, de gewenste rechthoek, waarbij we ons opnieuw concentreren op de afmetingen in het paneel. Als we missen, corrigeren we de fout, net als bij selectie; in termen van het corrigeren van fouten zijn dit identieke hulpmiddelen. (Om met kleine objecten te werken, is het beter om de afbeeldingsschaal te vergroten tot 200-400%. Een vervolgkeuzelijst met mogelijke schaalgroottes bevindt zich in de statusbalk van het afbeeldingsvenster, deze is moeilijk te missen.) Na de gewenste afmetingen zijn bereikt, klikt u in de geselecteerde rechthoek en krijgt u onze eerste kant-en-klare afbeelding voor de menuknop. Wees niet verbaasd dat het zo klein is; de browser herhaalt het zo vaak als nodig is om het hele gebied van de knop te vullen. We slaan het op in .png-formaat op het bureaublad onder de naam a2.

    Maak nog een rechthoekige afbeelding van 25 bij 3 pixels, alleen gevuld met een effen bruine kleur, hetzelfde als de eerste. Sla het op onder de naam a1.png.

    Ga naar het sitebeheerderspaneel en start SwMenuFree. Tabblad "Kleur en achtergrond". Blokkeer "Achtergrondafbeeldingen". Regel "Menu - achtergrond:", knop "Selecteren". We moeten nu onze afbeeldingen naar de site uploaden. In het venster dat verschijnt, klikt u op de knop “Bladeren”. We geven onze afbeelding a1.png aan op het bureaublad en klikken op de knop Uploaden. Het wordt gedownload naar een map op de site. Om het als achtergrond van een menu-item in te voegen, klikt u rechtstreeks op de afbeelding die naar de site is geüpload en klikt u op OK. We doen hetzelfde, maar alleen in de regel “Menu - achtergrond bij hover:” met de afbeelding a2.png.

    Als alles correct was gedaan, was het resultaat een heel origineel menu: in een rustige staat is het menu monochromatisch en als je met de cursor beweegt, verschijnt er een oranje streep onderaan het menu-item. Wanneer je snel met je muis door het menu beweegt, loopt deze balk snel door het gehele menu.

    Controlevragen:
  • Noem de voordelen van een dynamisch menu ten opzichte van een statisch menu.
  • Wat is een “ouder” in dynamische menuterminologie.
  • Hoe kan ik de structuur van een reeds aangemaakt menu wijzigen?
  • Wat zijn de specifieke kenmerken van het werken in joomla-extensies, met andere woorden, webapplicaties?
  • Wat gebeurt er als u, na het instellen van een menu in de SwMenuFree-applicatie, de site verbindt met een andere sjabloon? Maak een lijst van mogelijke problemen.
  • Testtaken:
  • Denk na over het afbeeldingsontwerp voor uw menu.
  • Maak vier afbeeldingen in GIMP: twee voor het menu, twee voor het submenu.
  • Installeer afbeeldingen op uw menu.
  • Stuur een link naar uw site voor controle.
  • Op basis van de naam van het bestand of de map en de reeks tekens in de naam van het bestand of de map;

    Op bestandsnaamextensie;

    Op datum van laatste wijziging;

    Maat;

    Door een tekstfragment uit een document of door de titel van een sectie.

    Door verschillende tabbladen te gebruiken, kunt u gemakkelijker naar bestanden zoeken op basis van specifieke criteria.

    Om vaak herhaalde commando's snel op te roepen, kunt u gebruik maken van het dynamische menu, dat u met de rechtermuisknop oproept. Het dynamische menu (Fig. 2.8) bevat veelgebruikte opdrachten. De reeks opdrachten is afhankelijk van het geselecteerde object: een schijfpictogram, map of bestand, geselecteerde tekst, taakbalk of vrije ruimte op het scherm.

    Als u met de rechtermuisknop op het schijfpictogram in het programmavenster klikt Mijn computer, dan verschijnen de commando's: Openen, Verkenner, Zoeken, Splitsen, Opmaak, Plakken, Snelkoppeling maken. Eigenschappen. Net als voor een schijf zijn de dynamische menuopdrachten voor een bestand afhankelijk van het bestandstype en dupliceren ze het menu Bestand. De rechtermuisknop is handig om te gebruiken om een ​​bestand van het ene venster naar een andere map te verplaatsen of te kopiëren Mijn computer of Geleider. Nadat u een map-/bestandspictogram hebt omgezet met de rechtermuisknop ingedrukt, verschijnt er een dynamisch menu waarmee u het transportdoel kunt specificeren: een object verplaatsen of kopiëren, een snelkoppelingspictogram maken.

    Map Vuilnisbak ontworpen om onnodige bestanden te verwijderen. Het belangrijkste verschil tussen het uitvoeren van een opdracht Verwijderen in Windows"95 en in andere programma's is dat in de nieuwe versie van het besturingssysteem het selecteren van een commando niet leidt tot het verwijderen van het bestand, maar tot het verplaatsen ervan naar een map Vuilnisbak. Het daarin geplaatste bestand wordt opgeslagen totdat de Prullenbak wordt “leeggemaakt”. Om een ​​bestand, map of snelkoppelingspictogram te verwijderen, kunt u de opdracht gebruiken Verwijderen of verplaats het pictogram van het object dat u wilt verwijderen met de muis naar het pictogram Vuilnisbak. Het pictogram voor het item dat wordt gesleept, verdwijnt. Om alle bestanden in de Prullenbak te bekijken, moet u dubbelklikken op het pictogram ervan. Er verschijnt een mapvenster met een menubalk met daarin een standaardset opdrachten. Om een ​​bestand, map of snelkoppelingspictogram te herstellen, moet u op de naam van het bestand klikken dat u wilt herstellen. Als u meerdere bestanden moet herstellen, worden de bestandsnamen gemarkeerd terwijl u de Ctrl-toets ingedrukt houdt. Gebruik dan het commando Herstellen uit het menu Bestand.

    Rijst. 2.8. Dynamisch menu

    Momenteel worden duizenden harde schijven, adapters, controllers en andere producten geproduceerd voor IBM PC-compatibele computers. In sommige gevallen veroorzaakt de installatie ervan op een computer aanzienlijke compatibiliteitsproblemen en vergt het veel gebruikerstijd om de positie van de jumpers te selecteren. Computers met Plug-and-Play-adapters hoeven de DIP-switches niet handmatig in te stellen. In overeenstemming met Plug and Play-technologie worden na het inschakelen van de computer de namen van nieuw aangesloten apparaten of kaarten en hun kenmerken automatisch bepaald, geconfigureerd en de bijbehorende stuurprogramma's automatisch geladen. Dit kan ook gebeuren tijdens een werksessie als de computerhardware verandert. Op dezelfde manier wordt de verwijdering van een apparaat of bord geregistreerd, de stuurprogramma's van dit apparaat worden verwijderd zodat ze geen RAM in beslag nemen en systeembronnen vrijmaken.

    Wanneer u Windows '95 installeert, detecteert de installatietoepassing adapters en stuurprogramma's die de nieuwe technologie niet ondersteunen en worden automatisch de juiste gegevens in de systeembestanden aangemaakt. Zelfs als uw computer niet volledig Plug and Play is, helpt Windows '95 u bij het instellen van uw computer. hardware met behulp van het dialoogvenster Eigenschappen met tabblad Bronnen het apparaat in kwestie. Om een ​​raam te bellen Apparaten eerst moet u het pictogram activeren Systeem Configuratiescherm en dubbelklik om het apparaat te selecteren. In het onderste veld Lijst met conflicterende apparaten Er wordt aangegeven met welke apparaten het betreffende apparaat mogelijk conflicteert. Het wordt aanbevolen om het vakje aan te vinken Gebruik automatische configuratie zodat het besturingssysteem zelf de systeembronnen configureert.

    Plug-and-Play-technologie bestaat uit drie hoofdcomponenten: een besturingssysteem dat Plug-and-Play ondersteunt, een Plug-and-Play BIOS en Plug-and-Play-apparaten met de juiste stuurprogramma's. Daarom vereist een complete oplossing voor het Plug and Play-probleem ondersteuning op zowel software- als hardwareniveau.

    Wanneer u met Windows "95 werkt, moet u soms het systeem opnieuw opstarten. Er zijn "koude" en "warme" reboots van de computer. Een "koude" reboot wordt uitgevoerd nadat u de stroom hebt uitgeschakeld en weer hebt ingeschakeld. De programma's en parameters die nodig zijn voor de werking worden opnieuw in het RAM gelezen. " Een hot boot wordt uitgevoerd zonder de stroom uit te schakelen, door tegelijkertijd op de Alt+Ctri+Del-toetsen te drukken. In dit geval wordt alle informatie opgeslagen in het RAM en niet naar de harde schijf geschreven. wordt meestal gewist als het programma vastloopt en niet reageert op toetsaanslagen en muisknoppen. Als u op de Alt+Ctri+Del-toetsen drukt, verschijnt er in sommige gevallen een dialoogvenster. Taak annuleren. Als u in het venster het bevroren programma kunt sluiten, hoeft u de computer niet opnieuw op te starten.

    Voordat u de computer uitschakelt, moet u alle geopende documenten en toepassingen sluiten. Als u de stroom uitschakelt zonder het document te sluiten, kan dit leiden tot gegevensverlies, corruptie van geopende bestanden en problemen bij het openen ervan in volgende sessies. Nadat u de computer hebt uitgeschakeld zonder correct uit te loggen, kunnen er schendingen zijn in de logische structuur van de schijf. U kunt ze repareren met behulp van het ScanDisk-programma in de groep Nutsvoorzieningen.

    Om Windows correct af te sluiten, klikt u op de knop Begin en elftal Om het werk af te maken in het menu dat verschijnt. Het dialoogvenster Afsluiten verschijnt. Het venster bevat keuzerondjes: Zet de computer uit. Om een ​​computer opnieuw op te starten. Start de computer opnieuw op in de emulatiemodusMEVR DOS, Log in met een andere naam. Alle knoppen sluiten alle programma's. Onderaan het venster Windows afsluiten bevinden zich drie knoppen: Ja, nee, hulp. Een korte periode nadat de muis op de knop heeft geklikt Ja De computer wordt voorbereid op afsluiten: interne buffers en schijfcaches worden gewist en gegevens worden opgeslagen. Schakel de computer niet uit voordat het bericht “U kunt de computer nu uitschakelen” verschijnt.

    We beperken ons tot de bovenstaande korte beschrijving van hoe Windows werkt. Echte beheersing ervan (zelfs meer dan DOS en Norton Commander) is een kwestie van praktische training op de computer met behulp van zowel talrijke speciale handleidingen als het ingebouwde naslagwerk.

    Testvragen en opdrachten

    1. Beschrijf de plaats van besturingssystemen tussen andere soorten software.

    2. Wat zijn de functies van het besturingssysteem?

    3. Beschrijf de belangrijkste stappen in de evolutie van besturingssystemen.

    Proces?

    Virtualisatie?

    Onderbreken?

    5. Beschrijf de functies van de belangrijkste componenten van besturingssystemen.

    6. Wat is het doel van het?

    7. Wat is een bestand? Welke bestandsstructuren worden door verschillende besturingssystemen ondersteund?

    8. Wat is een directory (directories)? Waar worden catalogi voor gebruikt?

    9. Welke bestandsbewerkingen worden door besturingssystemen aangeboden?

    10. Beschrijf de commando's van het MS DOS-besturingssysteem.

    11. Beschrijf de shell-interface van Norton Commander OS.

    12. Beschrijf de stijl van werken met behulp van de Windows-shell.

    13. In welke opzichten is Windows 95 superieur aan Windows 3.11?

    14. Beschrijf een typisch Windows 95-venster.

    15. Welke functies voert het Startmenu uit? Zoekopdracht?

    16. Hoe noem je het dynamische menu en wat zijn de mogelijkheden ervan?

    § 2. CONCEPT VAN EEN PROGRAMMEERSYSTEEM2.1. BELANGRIJKSTE FUNCTIES EN COMPONENTEN

    Programmeersystemen zijn een reeks softwaretools die zijn ontworpen om met programma's in een van de programmeertalen te werken. Programmeersystemen bieden programmeurs diensten aan om hun eigen computerprogramma's te ontwikkelen.

    Momenteel wordt de ontwikkeling van alle systeem- en applicatiesoftware uitgevoerd met behulp van programmeersystemen, waaronder

    Vertalers uit talen op hoog niveau;

    Hulpmiddelen voor het bewerken, samenstellen en laden van programma's;

    Macroassemblers (machinegeoriënteerde talen);

    Debuggers van machineprogramma's.

    Programmeersystemen omvatten doorgaans:

    Teksteditor (Edit), die de functies uitvoert van het opnemen en bewerken van de brontekst van het programma;

    Programmalader (Load), waarmee u het gewenste programmatekstbestand uit de directory kunt selecteren;

    Programmastarter (Run), die het proces van programma-uitvoering uitvoert;

    Compiler (Compile), ontworpen om de brontekst van een programma te compileren of te interpreteren in machinecode met de diagnose van syntactische en semantische (logische) fouten;

    Debugger (Debug), die servicefuncties uitvoert voor het debuggen en testen van het programma;

    Bestandsbeheer (Bestand), dat de mogelijkheid biedt om bewerkingen met bestanden uit te voeren: opslaan, zoeken, vernietigen, enz.

    De kern van een programmeersysteem is de taal. Bestaande programmeertalen kunnen in twee groepen worden verdeeld: procedureel en niet-procedureel, Fig. 2.9.

    Procedurele (of algoritmische) programma's zijn een systeem van instructies voor het oplossen van een specifiek probleem. De rol van de computer wordt beperkt tot de mechanische uitvoering van deze instructies.

    Proceduretalen zijn onderverdeeld in talen op laag niveau en talen op hoog niveau.

    Met low-level (machinegeoriënteerde) talen kunt u programma's maken op basis van machinecode, meestal in hexadecimale vorm. Ze zijn moeilijk om mee te werken, maar programma's die met hun hulp zijn gemaakt door een zeer bekwame programmeur, nemen minder geheugenruimte in beslag en werken sneller. Met behulp van deze talen is het handiger om systeemprogramma's, stuurprogramma's (programma's voor het besturen van computerapparaten) en enkele andere soorten programma's te ontwikkelen.

    Rijst. 2.9. Algemene classificatie van programmeertalen

    Programma's in talen op hoog niveau zijn bijna natuurlijk (Engels)

    taal en vertegenwoordigen een reeks gegeven opdrachten.

    Laten we de beroemdste programmeersystemen opsommen.

    1. FORTRAN (FORmula TRANslating-systeem - formule-vertaalsysteem); de oudste taal die nog steeds actief wordt gebruikt bij het oplossen van problemen van wiskundige oriëntatie.

    2. BASIC (Beginner's All-purpose Symbolic Instruction Code - universele symbolische instructiecode voor beginners); ondanks vele tekortkomingen en een overvloed aan slecht compatibele versies, is het het populairst in termen van het aantal gebruikers.

    3. ALGOL (ALGOrithmic Language - algoritmische taal); speelde een grote rol in de theorie, maar wordt nu bijna nooit gebruikt voor praktisch programmeren.

    4. PL/1 (PL/I-programmeertaal - de eerste programmeertaal). Multifunctionele taal; nu bijna nooit gebruikt.

    5. Si (C - "si"); veel gebruikt bij het maken van systeemsoftware.

    6. Pascal (Pascal - genoemd naar de wetenschapper Blaise Pascal); extreem populair, zowel bij het leren programmeren als onder professionals. Op basis hiervan zijn verschillende krachtigere talen gemaakt (Modula, Ada, Delphi).

    7. COBOL (COMmon Business Oriented Language - een taal gericht op gemeenschappelijke zaken); is grotendeels buiten gebruik geraakt.

    8. Delphi - objectgeoriënteerde “visuele” programmeertaal; enorm populair op dit moment.

    9. Java is een platformonafhankelijke objectgeoriënteerde programmeertaal die uiterst effectief is voor het maken van interactieve webpagina's.

    Onder de niet-procedurele talen zijn dit de bekendste

    1. Lisp;

    2. Proloog (PROgrammeren in LOGic);

    3. Occam (vernoemd naar de filosoof W. Ockham).

    De "Turbo" -programmeersystemen van Borland, waarvan de kern bestaat uit vertalers van de programmeertalen BASIC, Pascal, C, Prolog, enz., worden veel gebruikt door programma-ontwikkelaars, maar ook bij het lesgeven in de Turbo-shell-interface voor externen Het programmeren van systemen is precies hetzelfde en biedt de gebruiker een standaardset functies en opdrachten die hierboven zijn beschreven en worden weergegeven in het hoofdmenu van het systeem.

    Laten we eens kijken naar de technologie van het ontwikkelen van programma's met behulp van het populaire Turbo-Pascal 7-programmeersysteem (waarbij we de bekendheid met de taal zelf laten tot het volgende hoofdstuk).

    In dergelijke geïntegreerde programmeersystemen wordt geprobeerd de programma-ontwikkelaar maximale servicemogelijkheden te bieden. Naast de hoofdfuncties kunt u met het Turbo Pascal 7-systeem de compiler configureren om in drie modi te werken: normale MS DOS-modus (Real), beschermde modus (Protected) en Windows-besturingsomgevingsmodus (Windows).

    Nadat het systeem is opgestart (TURBO.EXE-bestand), verschijnt er een interfacevenster op het beeldscherm, Afb. 2.10.

    Rijst. 2.10. Schermweergave van de geïntegreerde omgeving van Turbo-Pascal versie 7 (installatie)

    Het hoofdmenu van het systeem (bovenste regel van het scherm) bevat opdrachten waarmee u de volgende soorten werkzaamheden kunt uitvoeren:

    Bestand - werken met bestanden (opslaan, laden, communicatie met het besturingssysteem
    systeem);

    Bewerken - werk met een teksteditor (na standaard laden van het systeem
    de teksteditor is in actieve status);

    Zoeken - zoek en vervang tekstfragmenten;

    Uitvoeren - start het programma voor uitvoering;

    Compileren - het programma compileren en compilatieparameters instellen;

    Debug - het instellen van foutopsporingsparameters voor programma's;

    Tools - softwaretools (onopvallende service);

    Opties - instellingsopties voor de geïntegreerde omgeving;

    Venster - werken met vensters;

    Help - systeem van hulp en hints.

    Om met het programmeersysteem te kunnen werken, heeft u een conceptprogrammatekst nodig die in het werkveld van het systeemvenster kan worden getypt. De ingebouwde teksteditor is eenvoudig en maximaal geschikt voor het typen van programmateksten in Pascal. Het zorgt voor een speciale verlichting van besturingsstructuren en commando's. Handig is het contextuele helpsysteem (Shift+Fl), dat op elk moment en op elke plaats een hint oproept over de huidige programmatekst die wordt getypt. De programmatekst kan echter worden voorbereid in elke teksteditor die teksten in ASCII-codes opslaat (bijvoorbeeld in Lexicon); u hoeft alleen maar de bestandsnaam op te geven met de extensie .pas.

    Als de programmatekst(en) eerder op een harde schijf of diskette is opgeslagen, kunt u deze via het menu-item Bestand in het bewerkingsveld laden.

    Nadat u de tekstgeneratie hebt voltooid, moet u het programma compileren (menu-item Compile). Als er fouten in het programma zitten, geeft de compiler deze aan. Nadat u de fouten heeft gecorrigeerd, kunt u de compilatie opnieuw herhalen.

    Na een succesvolle compilatie wordt het programma gestart met de menuopdracht Uitvoeren.

    Maar meestal eindigt het werk in dit stadium niet. Complexe algoritmen vereisen testen en debuggen. Veel programma's zijn samengesteld uit afzonderlijke modules, vereisen communicatie met andere programma's en systemen, enz. Om al deze problemen op te lossen zijn andere systeemopdrachten bedoeld (Debug, Opties, enz.).

    Natuurlijk hoeft een programmeur die in Pascal werkt niet zulke complexe maar vaak voorkomende bewerkingen te programmeren als het berekenen van de waarden van wiskundige functies, het construeren van afbeeldingen van eenvoudige geometrische objecten (lijnsegmenten, cirkels, enz.), het leegmaken van het scherm en vele anderen. Zeer effectieve, zorgvuldig afgestemde programma's voor dergelijke acties zijn samengevat in standaardmodules en u hoeft er alleen maar toegang toe te hebben. Het pakket met bibliotheken met standaardmodules omvat: Crt - werkt met het scherm, Graph - werkt met afbeeldingen en andere, zoals Overlay, String, System, Turbo 3, WinAPI, WinCrt, WinDos, WinPrn, WinTypes, WinProcs.

    2.2. UITZENDPROGRAMMA'S EN AANVERWANTE PROCESSEN

    Sinds de komst van de eerste computers hebben programmeurs serieus nagedacht over het probleem van het coderen van computerprogramma's. Al eind jaren veertig begonnen de eerste primitieve programmeertalen op hoog niveau te verschijnen. Daarin schreef de programmeur het op te lossen probleem op in de vorm van wiskundige formules, en vertaalde vervolgens, met behulp van een speciale tabel, symbool voor symbool, en zette deze formules om in tweelettercodes. Vervolgens zette een speciaal programma (later een tolk genoemd) deze codes om in binaire machinecode. De eerste compiler werd begin jaren vijftig ontwikkeld door G. Hopper; het vervulde de functie van het combineren van commando's en organiseerde tijdens de vertaling subroutines, wees computergeheugen toe en zette commando's op hoog niveau (destijds pseudocodes) om in machinecommando's. Vervolgens begonnen compilers en tolken voor Assembleerttalen zich te ontwikkelen en raakten ze stevig verankerd in de computerpraktijk.

    De ideeën om sommige karakters in andere te vertalen (hercoderen) vormden de basis voor het creëren van verschillende programmeertalen met bijbehorende vertalers - compilers en/of tolken. Het verschil tussen compilers en tolken ligt in de procedure voor het vertalen van tekst naar machinecode. De compiler zet de volledige programmatekst om in een opeenvolgende reeks machine-instructies, die vervolgens ter uitvoering worden verzonden (een voorbeeld van een Pascal-compiler). De tolk voert de uitzending uit volgens het principe van simultaanvertaling. Elke afzonderlijke regel programmatekst wordt vertaald en nadat deze is geïnterpreteerd, worden de opdrachten op die regel uitgevoerd (voorbeeld van de BASIC-taal). Moderne vertalers van programmeertalen op hoog niveau en databasebeheersystemen integreren de mogelijkheden en voordelen van compilers en tolken, en voegen verschillende servicehulpprogramma's toe voor het vertalen en debuggen van gemaakte programma's naar programmeersystemen.

    Subroutines waren het belangrijkste element in de ontwikkeling van programmeersystemen. De opkomst van subroutines heeft het proces van het ontwikkelen van systeem- en applicatieprogramma's aanzienlijk vereenvoudigd. Subroutines maakten het mogelijk om bibliotheken te creëren van de meest gebruikte algoritmen in programma's: procedures en functies. Programmeersystemen bevatten noodzakelijkerwijs standaard (in het systeem ingebouwde) bibliotheken met subroutines. Ze bevatten bijvoorbeeld subroutines voor het berekenen van de wiskundige functies sin(x), cos(x), abs(x), etc.

    Momenteel zijn subroutinebibliotheken voor gebruikers en applicaties gebruikelijk. Hun aantal neemt toe. De structuur van bibliotheekroutines verandert. In moderne talen zijn modules (Unit) wijdverspreid geworden, die gespecialiseerde pakketten van onderling verbonden subroutines vertegenwoordigen voor een specifiek doel, bijvoorbeeld voor het werken met het toetsenbord, met grafische afbeeldingen, enz. De ontwikkeling van objectgeoriënteerd programmeren heeft het mogelijk gemaakt om bibliotheken van objecten en subroutines met objectgegevenstypen (Object). Een voorbeeld zijn shells zoals TurboVision.

    Een modern programma vertegenwoordigt een reeks opdrachten, operators en expressies die koppelingen (direct of indirect) bevatten naar verschillende subroutines uit bibliotheken, modules en objecten die in het programmeersysteem bestaan. In dit opzicht neemt de brontekst van het programma in de regel meerdere keren minder ruimte in beslag in het geheugen dan de vertaalde versie in machinecode. Hoe gebeurde dit?

    Laten we eens kijken naar een van de opties voor het vertalen van een programma vanuit de programmeertaal Pascal. De brontekst van het programma voor het oplossen van een kwadratische vergelijking wordt hieronder weergegeven:

    programma KvadUravn;

    var A, B, C, D, XI, X2: ECHT;

    writeln("voer A,B,C in"); lees(A,B,C);

    als D