def fib(n):
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
fib(1000)def fib(n):
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
fib(1000)
В нём символы в любых возможных кодировках.
files = [open('freq{}.txt'.format(i), 'w') for i in range(N)]
f2 = open('file2.txt')
i = 0
for l in f2.radlines():
files[i].write(l)
i = (i+1) % N
f2.close()
for f in files:
f.close() если я правильно понял знак хранится в первом бите
Дополнительный код позволяет заменить операцию вычитания на операцию сложения и сделать операции сложения и вычитания одинаковыми для знаковых и беззнаковых чисел, чем упрощает архитектуру ЭВМ.
#include <iostream>
using namespace std;
void foo(int* x) {*x = 7;}
int main(int argc, char** argv)
{
int x = 0;
foo(&x);
cout << x << endl;
return 0;
}#include <iostream>
using namespace std;
void foo(int& x) {x = 7;}
int main(int argc, char** argv)
{
int x = 0;
foo(x);
cout << x << endl;
return 0;
}g++ -S ptr.cpp
g++ -S ref.cppdiff ptr.s ref.sctime, а не time.h#include <random>
...
std::random_device rd;
std::cout << rd() % 10;void fill_with_random(int* arr, size_t n)
{
random_device rand;
for (size_t i = 0; i < n; ++i)
{
arr[i] = rand() % 21 - 10;
}
}cout << y[0][0]; //все прекрасно выводится
/*но если попробовать сделать y[0][0]+=1; то выводится ошибка "выражение должно быть допустимым для изменения левосторонним значением"*/int operator [](int i)
{
return x[i];
}int& operator [](int i)
{
return x[i];
}int operator [](int i)
{
return y[i][0]; /*совершенно непонятно, какую роль здесь играет [0], и почему не работает с просто return y[i]... при изменении [0] на любое другое число, результат не меняется...*/
}massiv& operator [](int i)
{
return y[i];
}class Matrix
{
public:
Matrix() {}
int* operator[] (size_t i)
{
return &arr[i][0]; // Указатель на первый элемент i-ой строки.
}
private:
int arr[5][5];
}for(int x = 0; x < 100; x = x + 2)
{
if(x % 4) cout << x;
}for(int x = 0; x < 100; x = x + 2)
{
if(x % 4 == 0) continue;
cout << x;
}for(int x = 2; x <= 100; x += 4)
{
cout << x;
} max без использования условных операторов:def max_(a, b):
return (a + b + abs(a-b)) / 2;
m = 0
arr = [1, 2, 3, 4, 5, 6, 98, 65, 190]
for val in arr:
m = max_(m, val)
print(m) // Следующая строка при компиляции будет заменена на содержимое файла helloworld.h
#include "helloworld.h"
int main(int argc, char** argv)
{
helloworld(); // Вызываем функцию определённую в другом файле.
return 0;
}// Следующая конструкция называется include guard.
// Благодаря ней вы не сможете вставить содержимое этого файла дважды,
// что поможет вам избежать ошибок переопределения.
#ifndef HELLOWORLD_H
#define HELLOWORLD_H
// Объявление функции.
// Если функция объявлена но не определена в данном файле,
// компилятор будет искать её реализацию в других файлах.
void helloworld();
#endif// Снова вставляем содержимое файла helloworld.h
#include "helloworld.h"
#include <iostream>
// Определяем функцию.
void helloworld()
{
std::cout << "Hello, world!";
} for each, он не является частью стандарта языка C++ и поддерживается только в VisualStudio.for (string strFILE : v_strSEARCH)
{
cout << "Файл " << v_strFILE << endl;
}return vector<string>();struct item {
int value;
item* parent;
vector<item*> children;
item(int v, item* p = nullptr) : value(v), parent(p) {}
void addChild(int value) {
children.push_back(new item(value, this));
}
~item() {
for(auto child : children)
delete *child;
}
}// Некоторая функция
float func(float x1, float x2);
// Указатель на функцию: возвращаемый_тип (* имя_указателя)(типы_аргументов)
float (*func_pointer)(float, float);
// Указателю можно присвоить только функции имеющие такую же
// сигнатуру (возвращаемый тип и типы аргументов)
func_pointer = func;
// Указатель на функцию может быть аргументом
double findMinimum(x1, x2, float (*func_arg)(float, float)) {
// Вызвать функцию через указатель можно также как и обычную функцию
// потому, что имя функции тоже является указателем
float x = func_arg(x1, x2);
}
// Чтоб передать указатель на функцию, нужно просто написать имя функции без скобок
cout << findMinimum(1, 2, func) << '\n';