Главная » Просмотр файлов » Примеры кода

Примеры кода (1161128)

Файл №1161128 Примеры кода (Примеры кода)Примеры кода (1161128)2019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла

+ - естьX - такая фича не поддерживается данным языком- или <пусто> - еще нет примера кода.ЯзыкиCC++PythonJavaC#Ada95классыX++++++++++++/-+циклы+++рекурсия+функцииисключенияXстат.полиморфизм++X+Xдин. полиморфизмX+пар. полиморфизмX+итераторыXабстрактный классXlambdaXфункторыXввод/вывод++X+++X++++++++-/+С++Проверка числа на простоту на этапе компиляции при помощи шаблоновПример с динамическим полиморфизмом и абстрактным классомС#Пример использования базовых операций ввода/вывода, конструкций ветвления и цикловдля вычисления наибольшего общего делителя, как рекурсивно, так и в цикле.Пример использования наследования для реализации фигур: прямоугольника, круга,многоугольника и абстрактной функции, вычисляющей площадь.Пример с перегрузкой операторов +, - и пользовательского преобразования типовПример определения интерфейса и статического полиморфизма с его методамиПример параметрического полиморфизмаИспользование лямбда-функций и делегатовJavaMerge sort.

Здесь есть циклы, операторы ветвления, объявление классов, итераторы,стандартные контейнеры, параметрический полиморфизмПараметрический полиморфизм + вывод в консольПример реализации итерируемого классаПример абстрактного класса + наследованиеPythonИсключенияПример с наследованием классов, циклами, вводом, выводом, спискомЛямбда-функция с рекурсией + ввод/вывод. (Факториал)Пример функции-генератора (итераторы)Ada95Пример с инкапсуляцией и наследованиемКлассический GCD. Использование функций, циклов и вывода.С++Проверка числа на простоту на этапе компиляции при помощи шаблоновstruct false_type {typedef false_type type;enum { value = 0 };};struct true_type {typedef true_type type;enum { value = 1 };};template<bool condition, class T, class U>struct if_ {typedef U type;};template <class T, class U>struct if_<true, T, U> {typedef T type;};template<size_t N, size_t c>struct is_prime_impl {typedef typename if_<(c*c > N),true_type,typename if_<(N % c == 0),false_type,is_prime_impl<N, c+1> >::type >::type type;enum { value = type::value };};template<size_t N>struct is_prime {enum { value = is_prime_impl<N, 2>::type::value };};template <>struct is_prime<0> {enum { value = 0 };};template <>struct is_prime<1> {enum { value = 0 };};Пример с динамическим полиморфизмом и абстрактным классом// Base classclass Shape {public:// pure virtual function providing interface framework.virtual int getArea() = 0;void setWidth(int w) {width = w;}void setHeight(int h) {height = h;}protected:int width;int height;};// Derived classesclass Rectangle: public Shape {public:int getArea() {return (width * height);}};class Triangle: public Shape {public:int getArea() {return (width * height)/2;}};С#Пример использования базовых операций ввода/вывода, конструкций ветвления и цикловдля вычисления наибольшего общего делителя, как рекурсивно, так и в цикле.using System.IO;using System;class Program {static int GCD_rec(int a, int b) {if (b == 0)return a;elsereturn GCD_rec(b, a % b);}static int GCD_rec2(int a, int b){ return b == 0 ? a : GCD_rec2(b, a % b); }static int GCD_loop(int a, int b) {while (b != 0) {int t = a;a = b;b = t % b;}return a;}static void Main() {Console.WriteLine("Enter the number: ");int testA = int.Parse(Console.ReadLine());Console.WriteLine("Enter the number: ");int testB = int.Parse(Console.ReadLine());Console.WriteLine("GCD_rec result: " + GCD_rec(testA, testB));Console.WriteLine("GCD_rec2 result: " + GCD_rec2(testA, testB));Console.WriteLine("GCD_loop result: " + GCD_loop(testA, testB));}}Пример использования наследования для реализации фигур: прямоугольника, круга,многоугольника и абстрактной функции, вычисляющей площадь.usingusingusingusingSystem.IO;System;System.Collections.Generic;System.Linq;abstract class Shape {public abstract double Square();}class Rect : Shape {double w, h; // По умолчанию поле считается privatepublic Rect(double w, double h) { this.w = w; this.h = h; }public override double Square(){ return w * h; }}class Circle : Shape {double radius;public Circle(double rad) { radius = rad; }public override double Square(){ return Math.PI * radius * radius; }}class Polygon : Shape {List<double> xs, ys;public Polygon(List<double> xs, List<double> ys) {if (xs.Count != ys.Count) {throw new Exception("Number of 'x' coordinates must match number of 'y'coordinates");}this.xs = xs.ToList(); // ToList() вызывается для копирования спискаthis.ys = ys.ToList(); // иначе просто сохранилась бы ссылка}public override double Square() {double res = 0;for (int i = 0; i < xs.Count; i++) {int ni = (i + 1) % xs.Count;res += xs[ni] * ys[i] - xs[i] * ys[ni];}return Math.Abs(res) / 2;}}class Program {static void Main() {// Shape shap = new Shape(); <- ошибка, так нельзя, так как класс абстрактныйShape circ = new Circle(10);Shape rect = new Rect(5, 6);Console.WriteLine("circ square = " + circ.Square());Console.WriteLine("rect square = " + rect.Square());String input = Console.ReadLine();double[] nums = input.Split(' ') // разбиваем по пробелам.Where(s => !String.IsNullOrWhiteSpace(s))// оставляем только такие строки 's', которые не пустые.Select(s => double.Parse(s))// вместо каждой строки 's' выбираем число, которое она обозначает.ToArray();List<double>[] coords = new List<double>[2];coords[0] = new List<double>();coords[1] = new List<double>();for (int i = 0; i < nums.Length; i++) {coords[i % 2].Add(nums[i]);}try {Shape poly = new Polygon(coords[0], coords[1]);Console.WriteLine(poly.Square());} catch (Exception ex) {// если ввели нечётное количество чисел может произойти исключениеConsole.WriteLine(ex.Message);}}}Пример с перегрузкой операторов +, - и пользовательского преобразования типовclass Fraction {int num, den;public Fraction(int num, int den) {this.num = num;this.den = den;}public static Fraction operator +(Fraction a, Fraction b) {return new Fraction(a.num * b.den + b.num * a.den,a.den * b.den);}public static Fraction operator *(Fraction a, Fraction b) {return new Fraction(a.num * b.num, a.den * b.den);}// user-defined conversion from Fraction to doublepublic static implicit operator double(Fraction f) {return (double)f.num / f.den;}}class Test {static void Main() {Fraction a = new Fraction(1, 2);Fraction b = new Fraction(3, 7);Fraction c = new Fraction(2, 3);Console.WriteLine((double)(a * b + c));}}Пример определения интерфейса и статического полиморфизма с его методамиinterface ITest{void F();void F(int x);void F(ref int x);void F(int x, int y);int F(string s);// int F(int x);void F(string[] a);// void F(params string[] a);}////////////////F()F(int)F(ref int)F(int, int)F(string)F(int) error повторное определениеF(string[])F(string[]) error повторное определениеПример параметрического полиморфизмаvoid PrintCountGeneric<T>(T collection) where T : ICollection{Console.WriteLine(collection.Count);}...var list = new List<int>() { 1, 2 };PrintCountGeneric(list);Использование лямбда-функций и делегатовusing System.IO;using System;class Program {delegate void Handler(int x);static void PrintX(int x) {Console.WriteLine(x);}static void PrintXX(int x) {Console.WriteLine(x * x);}static void Main() {// Func<int, int, double>// int, int - типы параметров// последний в списке тип double - тип возвращаемого значенияFunc<int, int, double> pow =(x, y) => Math.Pow(x, y);// Action<int, int>// int, int - типы параметров// возвращаемого значения в Action нетAction<int, int> printpow =(x, y) => Console.WriteLine("pow: " + pow(x, y));printpow(2, 3);printpow(5, 2);Action<int> printpow4 = x => printpow(x, 4);// Handler - набор функцийHandler h = PrintX;h += PrintXX;h += x => Console.WriteLine(x * x * x);h += new Handler(printpow4);Console.WriteLine("\nh(5):");h(5); // Тут все собранные функции вызовутся с параметром 5}}JavaMerge sort.

Здесь есть циклы, операторы ветвления, объявление классов, итераторы,стандартные контейнеры, параметрический полиморфизмimport java.util.List;import java.util.ArrayList;import java.util.Iterator;public class Merge{public static <E extends Comparable<? super E>> List<E> mergeSort(List<E> m){if(m.size() <= 1) return m;int middle = m.size() / 2;List<E> left = m.subList(0, middle);List<E> right = m.subList(middle, m.size());right = mergeSort(right);left = mergeSort(left);List<E> result = merge(left, right);return result;}public static <E extends Comparable<? super E>> List<E> merge(List<E> left, List<E>right){List<E> result = new ArrayList<E>();Iterator<E> it1 = left.iterator();Iterator<E> it2 = right.iterator();E x = it1.next();E y = it2.next();while (true){if(x.compareTo(y) <= 0){result.add(x);if(it1.hasNext()){x = it1.next();}else{result.add(y);while(it2.hasNext()){result.add(it2.next());}break;}}else{result.add(y);if(it2.hasNext()){y = it2.next();}else{result.add(x);while (it1.hasNext()){result.add(it1.next());}break;}}}return result;}}Параметрический полиморфизм + вывод в консольpublic class Box<T> {private T t;public void add(T t) {this.t = t;}public T get() {return t;}public static void main(String[] args) {Box<Integer> integerBox = new Box<Integer>();Box<String> stringBox = new Box<String>();integerBox.add(new Integer(10));stringBox.add(new String("Hello World"));System.out.printf("Integer Value :%d\n\n", integerBox.get());System.out.printf("String Value :%s\n", stringBox.get());}}Пример реализации итерируемого классаimport java.util.NoSuchElementException;import java.util.Iterator;public class Range implements Iterable<Integer> {private int start, end;public Range(int start, int end) {this.start = start;this.end = end;}public Iterator<Integer> iterator() {return new RangeIterator();}// Inner class exampleprivate static final class RangeIterator implementsIterator<Integer> {private int cursor;private final int end;public RangeIterator(int start, int end) {this.cursor = start;this.end = end;}public boolean hasNext() {return this.cursor < end;}public Integer next() {if(this.hasNext()) {int current = cursor;cursor ++;return current;}throw new NoSuchElementException();}public void remove() {throw new UnsupportedOperationException();}}public static void main(String[] args) {Range range = new Range(1, 10);// Long wayIterator<Integer> it = range.iterator();while(it.hasNext()) {int cur = it.next();System.out.println(cur);}// Shorter, nicer way:// Read ":" as "in"for(Integer cur : range) {System.out.println(cur);}}}Пример абстрактного класса + наследованиеabstract class Instrument {protected String name;abstract public void play();}abstract class StringedInstrument extends Instrument {protected int numberOfStrings;}public class ElectricGuitar extends StringedInstrument {public ElectricGuitar() {super();this.name = "Guitar";this.numberOfStrings = 6;}public ElectricGuitar(int numberOfStrings) {super();this.name = "Guitar";this.numberOfStrings = numberOfStrings;}@Overridepublic void play() {System.out.println("An electric " + numberOfStrings + "-string " + name+ " is rocking!");}}public class ElectricBassGuitar extends StringedInstrument {public ElectricBassGuitar() {super();this.name = "Bass Guitar";this.numberOfStrings = 4;}public ElectricBassGuitar(int numberOfStrings) {super();this.name = "Bass Guitar";this.numberOfStrings = numberOfStrings;}@Overridepublic void play() {System.out.println("An electric " + numberOfStrings + "-string " + name+ " is rocking!");}}public class Execution {public static void main(String[] args) {ElectricGuitar guitar = new ElectricGuitar();ElectricBassGuitar bassGuitar = new ElectricBassGuitar();guitar.play();bassGuitar.play();guitar = new ElectricGuitar(7);bassGuitar = new ElectricBassGuitar(5);guitar.play();bassGuitar.play();}}PythonИсключенияtry:raise ValueError #Так генерируем исключениеexcept ValueError:print('Поймали ошибку определенного вида')except Exception:print('поймали любую ошибку')else:print('Выводим это, если не поймали никакой ошибки')finally:print('Выводим это независимо от того, была ошибка или нет ')Пример с наследованием классов, циклами, вводом, выводом, спискомimport mathclass Figure(object):def __init__(self, center_x = 0, center_y = 0):self.x = center_x # <--- self = thisself.y = center_ydef area(self):pass # в python нет виртуальных методовclass Square(Figure):def __init__(self, size = 1):Figure.__init__(self) # вызов родительского конструктораself.size = sizedef area(self):return self.size ** 2;class Circle(Figure):def __init__(self, radius = 1):Figure.__init__(self)self.radius = radiusdef area(self):return math.pi * self.radius ** 2if __name__ == "__main__":numbers = map(int, input('Enter numbers: ').split())circles = [Circle(x) for x in numbers] # <--- list comprehensionfor c in circles: # <--- цикл forprint("Circle with r = {0} and area = {1}.".format(c.radius, c.area()))Лямбда-функция с рекурсией + ввод/вывод.

Характеристики

Тип файла
PDF-файл
Размер
285,38 Kb
Материал
Тип материала
Высшее учебное заведение

Тип файла PDF

PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.

Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.

Список файлов учебной работы

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6363
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее