98882

Язык программирования С#

Реферат

Информатика, кибернетика и программирование

С непосредственно связан с С C и Java. Более того почти все профессиональные программисты сегодня знают С и C и большинство знает Java. С и Java связаны между собой несколько сложнее. Как упоминалось выше Java также является потомком С и C.

Русский

2016-07-13

85.5 KB

0 чел.

Федеральное государственное бюджетное  образовательное учреждение

высшего профессионального образования

«Саратовский государственный технический университет»

Кафедра «Прикладные информационные технологии»

РЕФЕРАТ

по дисциплине:

«Инструментальные средства информационных систем»

На тему:

«Язык программирования С# »

    Выполнил: студент с-з ИФСТ 012

Наймушин Андрей Игоревич

    Принял: преподаватель

     Бровко Александр Валерьевич

Саратов—2013г.


Содержание

Введение

Общее описание языка

Сравнение C # с другими языками программирования

Использование C #

Пример программы на C #

Заключение

Список использованных источников


Введение

Язык программирования С# был создан в конце 1990-х годов и стал частью общей .NET-стратегии Microsoft. Впервые он увидел свет в качестве α-версии в середине 2000 года. Главным архитектором С# был Андерс Хейлсберг (Anders Hejlsberg) — один из ведущих специалистов в области языков программирования, получивший признание во всем мире. Достаточно сказать, что в 1980-х он был автором весьма успешного продукта Turbo Pascal, изящная реализация которого установила стандарт для всех будущих компиляторов. С# непосредственно связан с С, C++ и Java. И это не случайно. Эти три языка — самые популярные и самые любимые языки программирования в мире. Более того, почти все профессиональные программисты сегодня знают С и C++, и большинство знает Java. Поскольку С# построен на прочном, понятном фундаменте, то переход от этих "фундаментальных" языков к "надстройке" происходит без особых усилий со стороны программистов. Так как Андерс Хейлсберг не собирался изобретать свое "колесо", он сосредоточился на введении усовершенствований и новшеств.

"Дедушкой" С# является язык С. От С язык С# унаследовал синтаксис, многие ключевые слова и операторы. Кроме того, С# построен на улучшенной объектной модели, определенной в C++. Если вы знаете С или C++, то с С# вы сразу станете друзьями. С# и Java связаны между собой несколько сложнее. Как упоминалось выше, Java также является потомком С и C++. У него тоже общий с ними синтаксис и сходная объектная модель. Подобно Java C# предназначен для создания переносимого кода. Однако С# — не потомок Java. Скорее С# и Java можно считать двоюродными братьями, имеющими общих предков, но получившими от родителей разные наборы "генов".

Общее описание языка

Последнее время С и С++ являются наиболее используемыми языками для разработки коммерческих и бизнес приложений. Эти языки устраивают многих разработчиков, но в действительности не обеспечивают должной продуктивности разработки. К примеру, процесс написания приложения на С++ зачастую занимает значительно больше времени, чем разработка эквивалентного приложения, скажем, на Visual Basic. Сейчас существуют языки, увеличивающие продуктивность разработки за счет потери в гибкости, которая так привычна и необходима программистам на С/С++. Подобные решения являются весьма неудобными для разработчиков и зачастую предлагают значительно меньшие возможности. Эти языки также не ориентированы на взаимодействие с появляющимися сегодня системами и очень часто они не соответствуют существующей практике программирования для Web. Многие разработчики хотели бы использовать современный язык, который позволял бы писать, читать и сопровождать программы с простотой Visual Basic и в то же время давал мощь и гибкость C++, обеспечивал доступ ко всем функциональным возможностям системы, взаимодействовал бы с существующими программами и легко работал с возникающими Web стандартами.

Учитывая все подобные пожелания, Microsoft разработала новый язык - C#. В него входит много полезных особенностей - простота, объектная ориентированность, типовая защищенность, "сборка мусора", поддержка совместимости версий и многое другое. Данные возможности позволяют быстро и легко разрабатывать приложения, особенно COM+ приложения и Web сервисы. При создании C#, его авторы учитывали достижения многих других языков программирования: C++, C, Java, SmallTalk, Delphi, Visual Basic и т.д. Надо заметить что по причине того, что C# разрабатывался с чистого листа, у его авторов была возможность (которой они явно воспользовались), оставить в прошлом все неудобные и неприятные особенности (существующие, как правило, для обратной совместимости), любого из предшествующих ему языков. В результате получился действительно простой, удобный и современный язык, по мощности не уступающий С++, но существенно повышающий продуктивность разработок.

Очень часто можно проследить такую связь - чем более язык защищен и устойчив к ошибкам, тем меньше производительность программ, написанных на нем. К примеру рассмотрим две крайности - очевидно это Assembler и Java. В первом случае вы можете добиться фантастической быстроты своей программы, но вам придется очень долго заставлять ее работать правильно не на вашем компьютере. В случае же с Java - вы получаете защищенность, независимость от платформы, но, к сожалению, скорость вашей программы вряд ли совместима со сложившимся представлением о скорости, например, какого-либо отдельного клиентского приложения (конечно существуют оговорки - JIT компиляция и прочее). Рассмотрим C++ с этой точки зрения - на мой взгляд соотношение в скорости и защищенности близко к желаемому результату, но на основе собственного опыта программирования я могу с уверенностью сказать, что практически всегда лучше понести незначительную потерю в производительности программы и приобрести такую удобную особенность, как "сборка мусора", которая не только освобождает вас от утомительной обязанности управлять памятью вручную, но и помогает избежать вам многих потенциальных ошибок в вашем приложении. В действительности скоро "сборка мусора", да и любые другие шаги к устранению потенциальных ошибок стану отличительными чертами современного языка. В C#, как в несомненно современном языке, также существуют характерные особенности для обхода возможных ошибок. Например, помимо упомянутой выше "сборки мусора", там все переменные автоматически инициализируются средой и обладают типовой защищенностью, что позволяет избежать неопределенных ситуаций в случае, если программист забудет инициализировать переменную в объекте или попытается произвести недопустимое преобразование типов. Также в C# были предприняты меры для исключения ошибок при обновлении программного обеспечения. Изменение кода, в такой ситуации, может непредсказуемо изменить суть самой программы. Чтобы помочь разработчикам бороться с этой проблемой C# включает в себя поддержку совместимости версий (vesioning). В частности, в отличии от C++ и Java, если метод класса был изменен, это должно быть специально оговорено. Это позволяет обойти ошибки в коде и обеспечить гибкую совместимость версий. Также новой особенностью является native поддержка интерфейсов и наследования интерфейсов. Данные возможности позволяют разрабатывать сложные системы и развивать их со временем.

В C# была унифицирована система типов, теперь вы можете рассматривать каждый тип как объект. Несмотря на то, используете вы класс, структуру, массив или встроенный тип, вы можете обращаться к нему как к объекту. Объекты собраны в пространства имен (namespaces), которые позволяют программно обращаться к чему-либо. Это значит что вместо списка включаемых файлов заголовков в своей программе вы должны написать какие пространства имен, для доступа к объектам и классам внутри них, вы хотите использовать. В C# выражение using позволяет вам не писать каждый раз название пространства имен, когда вы используете класс из него. Например, пространство имен System содержит несколько классов, в том числе и Console. И вы можете писать либо название пространства имен перед каждым обращением к классу, либо использовать using как это было показано в примере выше.

Важной и отличительной от С++ особенностью C# является его простота. К примеру, всегда ли вы помните, когда пишите на С++, где нужно использовать "->", где "::", а где "."? Даже если нет, то компилятор всегда поправляет вас в случае ошибки. Это говорит лишь о том, что в действительности можно обойтись только одним оператором, а компилятор сам будет распознавать его значение. Так в C#, оператор"->" используется очень ограничено (в unsafe блоках, о которых речь пойдет ниже), оператор "::" вообще не существует. Практически всегда вы используете только оператор "." и вам больше не нужно стоять перед выбором.

Еще один пример. При написании программ на C/С++ вам приходилось думать не только о типах данных, но и о их размере в конкретной реализации. В C# все упрощено - теперь символ Unicode называется просто char (а не wchar_t, как в С++) и 64-битное целое теперь - long (а не __int64). Также в C# нет знаковых и беззнаковых символьных типов.

В C#, также как и в Visual Basic после каждого выражения case в блоке switch подразумевается break. И более не будет происходить странных вещей если вы забыли поставить этот break. Однако если вы действительно хотите чтобы после одного выражения case программа перешла к следующему вы можете переписать свою программу с использованием, например, оператора goto.

Многим программистам (на тот момент, наверное, будущим программистам) было не так легко во время изучения C++ полностью освоиться с механизмом ссылок и указателей. В C# (кто-то сейчас вспомнит о Java) нет указателей. В действительности нетривиальность указателей соответствовала их полезности. Например, порой, трудно себе представить программирование без указателей на функции. В соответствии с этим в C# присутствуют Delegates - как прямой аналог указателя на функцию, но их отличает типовая защищенность, безопасность и полное соответствие концепциям объектно-ориентированного программирования.

Хотелось бы подчеркнуть современное удобство C#. Когда вы начнете работу с C#, а, надеюсь, это произойдет как можно скорее, вы увидите, что довольно большое значение в нем имеют пространства имен. Уже сейчас, на основе первого примера, вы можете судить об этом - ведь все файлы заголовков заменены именно пространством имен. Так в C#, помимо просто выражения using, предоставляется еще одна очень удобная возможность - использование дополнительного имени (alias) пространства имен или класса.

Современность C# проявляется и в новых шагах к облегчению процесса отладки программы. Традиционым средством для отладки программ на стадии разработки в C++ является маркировка обширных частей кода директивами #ifdef и т.д. В C#, используя атрибуты, ориентированные на условные слова, вы можете куда быстрее писать отлаживаемый код.

В наше время, когда усиливается связь между миром коммерции и миром разработки программного обеспечения, и корпорации тратят много усилий на планирование бизнеса, ощущается необходимость в соответствии абстрактных бизнес процессов их программным реализациям. К сожалению, большинство языков реально не имеют прямого пути для связи бизнес логики и кода. Например, сегодня многие программисты комментируют свои программы для объяснения того, какие классы реализуют какой-либо абстрактный бизнес объект. C# позволяет использовать типизированные, расширяемые метаданные, которые могут быть прикреплены к объекту. Архитектурой проекта могут определяться локальные атрибуты, которые будут связанны с любыми элементами языка - классами, интерфейсами и т.д. Разработчик может программно проверить атрибуты какого-либо элемента. Это существенно упрощает работу, к примеру, вместо того чтобы писать автоматизированный инструмент, который будет проверять каждый класс или интерфейс, на то, является ли он действительно частью абстрактного бизнес объекта, можно просто воспользоваться сообщениями основанными на определенных в объекте локальных атрибутах.

Сравнение C# с другими языками программирования

C#, являясь последним из широко распространенных языков программирования, должен впитать в себя весь имеющийся опыт и вобрать лучшие стороны существующих языков программирования, при этом являясь специально созданным для работы в .NET. Сама архитектура .NET продиктовала ему (как и многим другим языкам, на которых можно писать под .NET) объектно-ориентированную направленность. Конечно, это не является правилом, возможно создание компиляторов даже функциональных языков по .NET, на эту тему существуют специальные работы.

Свой синтаксис C# во многом унаследовал от C++ и Java. Разработчики, имеющие опыт написания приложений на этих языках, найдут в C# много знакомых черт. Но вместе с тем он является во многом новаторским - аттрибуты, делегаты и события, прекрасно вписанные в общую идеологию языка, прочно заняли место в сердцах .NET - разработчиков. Их введение позволило применять принципиально новые приемы программирования.

Конечно, излюбленным объектом для сравнения с C# у мировой коммьюнити является Java. Также разработанный для работы в виртуальной среде выполнения, имеющей объектно-ориентированную архитектуру и сборщик мусора, осноыванный на механизме ссылок. При сравнении с этим языком сразу выделаются такие особенности, как возможность объявлять несколько классов в одном файле, из чего следует синтаксическая поддержка иерархической системы пространств имен. Из реализации ООП-концепций сходство в механизме наследования и реализации (и в Java и в C# возможно единичное наследование, но множественная реализация интерфейсов, в отличие от C++). Но в Java отсутствуют свойства и индексаторы (а также делегаты и события, но они отсутствуют еще много где). Также есть возможность перечисления контейнеров.

Из вещей, включенных в спецификацию языка, но не являющихся чисто "программистскими" необходимо отметить возможность использование комментариев в формате XML. Если комментарии отвечают специально описанной стркутуре, компилятор по ним может сгенерировать единый XML-файл документации.

Но C# внес и свои уникальные черты, которые уже были упомянуты - это события, индексаторы, аттрибуты и делагаты. Все эти элементы будут обсуждены в следующих частях, сейчас лишь отмечу, что они предоставляют собой очень полезные возможности, которые не останутся невостребованными.

Использование C#

Переходя к более подробному знакомству с C#, традиционно рассмотрим программу "Hello, world": using System;

class Hello{

static void Main() {

Console.WriteLine("hello, world");

}

}

Поместите эту программу в файл hello.cs и скомпилируйте ее командой

csc hello.cs

Так выглядит вызов компилятора в простейшем случае. Далее мы приведем полный список параметров компилятора. При вызове компилятора убедитесь, что у вас прописан путь csc.exe - C Sharp Compiler

В результате вы получите файл hello.exe, запустив который, вы увидите надпись "hello, world".

Метод Main - это точка входа в программу. С него начинается выполнение (те, кто знаком с C++ или Java) понимают, о чем идет речь. Этот метод обязательно должен быть статическим. Далее в нашем примере используется метод WriteLine из класса System.Console. Этот метод отправляет строку на стандартный вывод.

Вы можете также создавать библиотеки классов - dll-сборки, которые могут использоваться другими приложениями. Для этого нужно указать /target:library в опциях компилятора

Если компилятор обнаружит ошибки в программе, он выдаст соответствующее сообщение и остановит процесс компиляции. Также он может выдать предупреждения - если он обнаружит код, который, строго говоря, правильный, но имеет подозрения на ошибку. К таким предупреждениям стоит прислушиваться.

Вообще, компилятор C# имеет множество возможностей, узнать о которых можно из слеующей таблицы. В ней описаны все опции командной строки компилятора CSC:

Выходные файлы/out:<file> Имя выходного файла (если не указано - производное от имени первого исходного файла)

/target:exe Скомпилировать консольный запускаемый файл (по умолчанию) (Краткая форма: /t:exe)

/target:winexe Скомпилировать запускаемый файл Windows (Краткая форма: /t:winexe)

/target:library Скомпилировать в библиотеку DLL (Краткая форма: /t:library)

/target:module Скомпилировать модуль, который может быть добавлен в другую конструкцию (Краткая форма: /t:module)

* Примечание: Модуль и библиотека имеют одинаковые расширения (DLL), но несмотря на это, они представляют из себя разные вещи. Библиотека - это классическая библиотека DLL. Модуль - это файл откомпилированный без создания конструкции (assembly). В дальнейшем вы можете добавить модуль в любую другую конструкцию при компиляции (с помощью опции /addmodule). /nooutput[+|-] Только проверять ошибки в коде; не создавать запускаемый файл

/define:<список символов> Определяет директивы препроцессора (Краткая форма: /d)

Написание csc /define:mark1 MyApp.cs равносильно наличию в файле строки

#define mark1

/doc:<file> Создать XML файл документации

Входные файлы/recurse:<маска> Включить все файлы, удовлетворяющие маске.

/main:<тип> Обозначить класс, содержащий точку входа в программу (все остальные будут игнорироваться) (Краткая форма: /m)

/reference:<список файлов> Включить метаданные из указанных файлов конструкций (Краткая форма: /r)

* Примечание: все данные, помеченные как public, из указаных файлов конструкций будут включены в данную конструкцию. Если файл не содержит объявления конструкции, то метаданные из него могут быть включены с помощью /addmodule./addmodule:<список файлов> Включить указанные модули в сборку

Ресурсы/win32res:<file> Добавляет файл ресурсов Win32(.res) в выходной файл

/win32icon:<file> Добавляет иконку в выходной файл

/resource:<resinfo> Включает .NET ресурс (Краткая форма: /res)

* Примечание: resinfo являет собой следующую последовательность: filename[,identifier[,mimetype]], где filename - имя файла ресурса, identifier - логическое имя ресурса (используется для его загрузки), mimetype - медиа тип ресурса (обычно отсутствует). /linkresource:<resinfo> Создает ссылку на ресурсный файл в данной сборке (не включая его в выходной файл)(Краткая форма: /linkres)

Создание кода/debug[+|-] Создавать информацию отладки.

/debug:{full|pdbonly} Указание типа отладки ('full' - по умолчанию, позволяет прикреплять отладчик к запускаемой программе)

/optimize[+|-] Запускать оптимизацию (Краткая форма: /o)

/incremental[+|-] Запускать компиляцию только измененных частей кода(Краткая форма: /incr)

Ошибки и предупреждения /warnaserror[+|-] Относиться к предупреждениям, как к ошибкам

/warn:<n> Установить уровень предупреждений (0-4) (Краткая форма: /w)

/nowarn:<список предупреждений> Исключить указанные предупреждения

* Примечание: список предупреждений - последовательность их номеров num1[,num2[...]]

Язык/checked[+|-] Выполнять проверки на переполнения и опустошения

/unsafe[+|-] Допускать unsafe код (unsafe код - небезопасный код, он будет обсужден в дополнительных главах)

Разное@<file> Прочтение команд и опций компилятора из файла

/help Показывает информацию о использовании (Краткая форма: /?)

/nologo Не показывать копирайт при компиляции

Дополнительно/baseaddress:<address> Базовый адрес для создаваемой библиотеки

/bugreport:<file> Создавать файл отчета об ошибках

/codepage:<n> Указать таблицу символов, для использования во время открытия исходного текста

/fullpaths Компилятор будет указывать полные имена файлов

/nostdlib[+|-] Не допускать включения стандартной библиотеки (mscorlib.dll). В этой библиотеке хранятся все основные классы .NET Framework.

         Пример программы на C#

Теперь пришло время "пощупать" новый язык - посмотреть как он на вкус. Для этого мы разберем небольшую программу на C#.

// Используем основные классы .NET Framework

using System;

// Объявляем, что мы работаем в пространстве имен SampleProgram

namespace SampleProgram

{

///

/// Класс Client содержит информацию о кленте - его имя и баланс счета

///

class Client

{

///

/// Эта переменная хранит имя клиента

///

private string _name;

///

/// Эта переменная хранит баланс счета клиента

///

private int _balance;

///

/// Это свойство используется для доступа к имени клиента.

/// Принято все переменные класса закрывать для доступа извне

/// и предоставлять доступ к ним через свойства, чтобы контролировать

/// доступ.

///

public string Name

{

// Здесь мы определяем код, который будет использован для

// получения значения свойства

get

{

return _name;

}

// Этот код служит для присвоения свойству нового значения

// Параметр value здесь представляет новое значения свойства

set

{

_name = value;

}

}

///

/// Это свойство служит для доступа к счету клиента. Доступ на

/// запись для него закрыт, чтобы нельзя было извне класса

/// в обход его методов изменить сумму на счету клиента.

///

public int Balance

{

get

{

return _balance;

}

}

///

/// Здесь мы определяем констуктор - метод, используемый

/// для создания нового объекта данного класса.

///

/// Параметр name задает имя для нового клиента

/// Параметр initialCash задает начальную сумму, которая будет на его счету

public Client( string name, int initialCash )

{

// Задаем имя клиента через свойство

Name = name;

// Задаем начальный счет через непосредственный доступ к переменной

_balance = initialCash;

}

///

/// Этот метод перечисляет деньги на счет клиента

///

/// Этот параметр задает сумму, которая будет перечислена

/// Этот параметр задает идентификатор транзакции для проверки подлинности перечисления

public void AddMoney( int amount, int transactionID )

{

// Если транзакция верна

if (Transaction.CheckID(transactionID))

// Перечисляем деньги

_balance += amount;

else

// Иначе генерируем исключение

throw new Exception("Wrong transaction ID");

}

///

/// Этот метод переопределяет стандартный метод ToString, определенный в классе

/// System.Object. По умолчанию этот метод выводит класс объекта.

///

/// Метод возвращает стороковое представление объекта

public override string ToString()

{

return Name + " (" + Balance + ")";

}

}

///

/// Класс транзакции. В нашем примере он будет лишь проверять правильность идентификатора транзакции

///

public class Transaction

{

///

/// Этот метод проверяет, верный ли идентификатор ему передан

///

/// Идентификатор для проверки

/// Возвращает true, если идентификатор верен и false если нет

public static bool CheckID( int id )

{

// В нашем примере идентификатор считается правильным, если он не делится на 2

return id % 2 != 0;

}

}

///

/// Класс приложения - класс, предстваляющий основное направление выполнения программы.

/// В нем определена точка входа

///

public class Application

{

///

/// Точка входа в программу

///

public static void Main()

{

// Создаем нового клиента по имени Johny Smith и двумястами долларами на счету

Client client = new Client("Johnny Smith", 200);

// Выводим начальное состояние клиента

// Благодаря перегрузке метода ToString, мы получим информацию о клиенте

Console.WriteLine("Начальное состояние: " + client);

// Следующий код мы заключаем в try...catch блок, так как в нем могут

// возникнуть исключения.

try

{

client.AddMoney(100, 0);

client.AddMoney(140, 1);

}

// Этот блок будет вызван, если возникнет исключение

catch (Exception)

{

Console.WriteLine("Перечисление денег было отклонено");

}

// Этот код будет вызван в любом случае либо по отработке блока catch, либо блока try

finally

{

Console.WriteLine("Конечное состояние клиента: " + client);

}

}

}

}

Приведенная программа демонстрирует различные аспекты C#. Что касается логики, она просто создает объект класса Client и пытается изменить состояние его счета. Первый раз удачно, второй - нет. Программа выводит на экран следющий текст:

Начальное состояние: Johnny Smith (200)

Перечисление денег было отклонено

Конечное состояние клиента: Johnny Smith (200)

Заключение

Ввиду очень удобного объектно-ориентированного дизайна, C# является хорошим выбором для быстрого конструирования различных компонентов - от высокоуровневой бизнес логики до системных приложений, использующих низкоуровневый код. Также следует отметить, что C# является и Web ориентированным - используя простые встроенные конструкции языка ваши компоненты могут быть легко превращены в Web сервисы, к которым можно будет обращаться из Internet посредством любого языка на любой операционной системе. Дополнительные возможности и преимущества перед другими языками приносит в C# использование передовых Web технологий, таких как: XML и SOAP

Список использованных источников

1. Лахатин, А.С. Языки программирования. Учеб. пособие / А.С. Лахатин, Л.Ю. Искакова. - Екатеринбург, 1998. - 548с.: ил.

2. Богатырев, А. Язык программирования С [Электронный ресурс] / А. Богатырев.- электр. дан. - Режим доступа: http://www.refby.com. - Загл. с экрана.

3. Уэйт, М. Язык С. Руководство для начинающих. / М. Уэйт, С. Прага, Д. Мартин. - М.: Мир, 1995. - 521с.: ил.

4. Фридман, А.Л. Язык программирования С++ / А.Л.Фридман. - М.: Бином, 2006. - 523с.: ил.


 

А также другие работы, которые могут Вас заинтересовать

31464. Религиозно-философские воззрения Древней Индии. Религиозно-философская мысль Древнего Китая 45 KB
  В основе периодизации древнеиндийской философии лежат различные источники философской мысли известные как в древности так и в современную эпоху. В соответствии с данными источников в древнеиндийской философии выделяются три основных этапа: XV VI вв. Наибольший интерес у исследователей древнеиндийской философии вызывают заключительные части Вед Упанишады дословно с санскрита сидение у ног учителя в которых дается философская трактовка содержания Вед. Наиболее известными источниками философии Древней Индии второго эпического...
31465. Характерные черты древнегреческой философии. Общая характеристика школ и направлений античной философии 39.5 KB
  Характерные черты древнегреческой философии. Общая характеристика школ и направлений античной философии. Классический сократический период время расцвета древнегреческой философии совпавшее с расцветом древнегреческого полиса. Для эллинистического периода периода кризиса полиса и образования крупных государств в Азии и Африке под властью греков и во главе с соратниками Александра Македонского и их потомками характерно: распространение антиобщественной философии киников; зарождение стоического направления...
31466. Основные проблемы античной философии (общая характеристика). Античная философия досократического периода 45.5 KB
  Проблемы античной философии. Совокупную проблематику античной философии можно тематически определить следующим образом: космология натурфилософы в ее контексте тотальность реального виделась как “physis†природа и как космос порядок основной вопрос при этом: Как возник космос; мораль софисты была определяющей темой в познании человека и его специфических способностей; метафизика Платон декларирует существование интеллигибельной...
31467. Софисты и Сократ. Сократики 38 KB
  Софисты философская школа в Древней Греции существовавшая в V первой половине IV вв. К числу сократических школ относятся: Академия Платона; школа киников; киренская школа; лигарская школа; элидоэритрийская школа. Академия Платона религиознофилософская школа созданная Платоном в 385 г. Киники философская школа которая обосновывала идею свободы вне общества асоциальной свободы.
31468. Философия Платона, Историческое значение философии Платона 39 KB
  Главными положениями его идеалистического учения являются следующие: материальные вещи изменчивы непостоянны и со временем прекращают свое существование; окружающий мир мир вещей также временен и изменчив и в действительности не существует как самостоятельная субстанция; реально существуют лишь чистые бестелесные идеи эйдосы; чистые бестелесные идеи истинны вечны и постоянны; любая существующая вещь является всего лишь материальным отображением первоначальной идеи эйдоса данной вещи например кони рождаются и умирают...
31469. Философия Аристотеля, Теория познания и логика 36.5 KB
  Аристотель ученик Платона но по ряду принципиальных вопросов он расходился со своим учителем. Исходя из признания объективного существования материи Аристотель считал ее вечной несотворимой и неуничтожимой. Аристотель подходит к идее единичного бытия вещи явления: они представляют собой слиянность материи и эйдоса формы. Аристотель разработал иерархическую систему категорий в которой основной была сущность или субстанция а остальные считались ее признаками.
31470. Специфика философской мысли в эпоху средневековья (общая характеристика). Периодизация средневековой философии 34 KB
  Периодизация средневековой философии. Специфика средневековой философии: 1 Теоцентричность. В основе этого признака лежт две главные идеи: 1 идея творения в онтологии как попытка ответить на первую часть основного вопроса философии креационизм истин. В средневековой философии полностью отсутствовало и понятие плагиата.
31471. Средневековая философия этапа патристики. Философия Августина Аврелия 38 KB
  Языческие боги вечные и всемогущественные. Христианский Бог обретает еще одно качество всеблагой олицетворяющий добро и совершенство. В христианстве тогда сложилось особое направленная теодицея оправдание бога за существующее в мире зло. Согласно ей Бог создавал мир из некоторого хаоса.
31472. Дослідження логічної організації перетворення даних – арифметичні операцій у різних системах числення з використанням алгоритмічних мов високого рівня 140.5 KB
  3 Дослідження логічної організації перетворення даних арифметичні операцій у різних системах числення з використанням алгоритмічних мов високого рівня. Мета лабораторної роботи ознайомитись з методами арифметичних операцій у різних системах числення отримати і закріпити практичні навички з побудови алгоритмів і програм. Короткі теоретичні відомості Для виконання арифметичних операцій у системі числення з основою P необхідно мати відповідні таблиці додавання та множення. 100111...